]> git.proxmox.com Git - mirror_frr.git/blobdiff - doc/OSPF-SR.rst
OSPFD: Update Segment Routing implementation
[mirror_frr.git] / doc / OSPF-SR.rst
index 8dcd88592a782342209141eff908f059444c0027..f7ab742342ba397af3aa8e88bb9611e1c58d4b0d 100644 (file)
@@ -7,39 +7,49 @@ DON'T use it for production network.
 Implementation details
 ----------------------
 
-Segment Routing used 3 differents OPAQUE LSA in OSPF to carry the various information:
- - Router Information: flood the Segment Routing capabilities of the node. This include
- the supported algorithms, the Segment Routing Global Block (SRGB) and the Maximum Stack
- Depth.
+Segment Routing used 3 differents OPAQUE LSA in OSPF to carry the various
+information:
+
+ - Router Information: flood the Segment Routing capabilities of the node.
+   This include the supported algorithms, the Segment Routing Global Block
+   (SRGB) and the Maximum Stack Depth (MSD).
  - Extended Link: flood the Adjaceny and Lan Adjacency Segment Identifier
  - Extended Prefix: flood the Prefix Segment Identifier
 
-The implementation follow previous TE and Router Information code. It used the OPAQUE LSA
-functions define in ospf_opaque.[c,h] as well as the OSPF API. This latter is mandatory
-for the implementation as it provides the Callback to Segment Routing functions (see below)
-when an Extended Link / Prefix or Router Information is received.
+The implementation follow previous TE and Router Information code. It used the
+OPAQUE LSA functions define in ospf_opaque.[c,h] as well as the OSPF API. This
+latter is mandatory for the implementation as it provides the Callback to
+Segment Routing functions (see below) when an Extended Link / Prefix or Router
+Information is received.
 
 Following files where modified or added:
  - ospd_ri.[c,h] have been modified to add the new TLVs for Segment Routing.
- - ospf_ext.[c,h] implement RFC7684 as base support of Extended Link and Prefix Opaque LSA.
- - ospf_sr.[c,h] implement the earth of Segment Routing. It adds a new Segment Routing database
- to manage Segment Identifiers per Link and Prefix and Segment Routing enable node, Callback
- functions to process incoming LSA and install MPLS FIB entry through Zebra.
-
-the figure below shows the relation between the various files:
-
- - ospf_sr.c centralized all the Segment Routing processing. It receives Opaque LSA
- Router Information (4.0.0.0) from ospf_ri.c and Extended Prefix (7.0.0.X) Link (8.0.0.X)
- from ospf_ext.c. Once received, it parse TLVs and SubTLVs and store information in SRDB
- (which is defined in ospf_sr.h). For each received LSA, NHLFE is computed and send to
- Zebra to add/remove new MPLS labels entries and FEC. New CLI configurations are also
- centralized in ospf_sr.c. This CLI will trigger the flooding os new LSA Router Information
- (4.0.0.0), Extended Prefix (7.0.0.X) and Link (8.0.0.X) by ospf_ri.c, respectively ospf_ext.c.
- - ospf_ri.c send back to ospf_sr.c received Router Information LSA and update self Router
- Information LSA with paramters provided by ospf_sr.c i.e. SRGB and MSD. It use ospf_opaque.c
- functions to send / received these Opaque LSAs.
- - ospf_ext.c send bacl to ospf_sr.c received Extended Prefix and Link Opaque LSA and send
- self Extended Prefix and Link Opaque LSA through ospf_opaque.c functions.
+ - ospf_ext.[c,h] implement RFC7684 as base support of Extended Link and Prefix
+   Opaque LSA.
+ - ospf_sr.[c,h] implement the earth of Segment Routing. It adds a new Segment
+   Routing database to manage Segment Identifiers per Link and Prefix and
+   Segment Routing enable node, Callback functions to process incoming LSA and
+   install MPLS FIB entry through Zebra.
+
+The figure below shows the relation between the various files:
+
+ - ospf_sr.c centralized all the Segment Routing processing. It receives Opaque
+   LSA Router Information (4.0.0.0) from ospf_ri.c and Extended Prefix
+   (7.0.0.X) Link (8.0.0.X) from ospf_ext.c. Once received, it parse TLVs and
+   SubTLVs and store information in SRDB (which is defined in ospf_sr.h). For
+   each received LSA, NHLFE is computed and send to Zebra to add/remove new
+   MPLS labels entries and FEC. New CLI configurations are also centralized in
+   ospf_sr.c. This CLI will trigger the flooding of new LSA Router Information
+   (4.0.0.0), Extended Prefix (7.0.0.X) and Link (8.0.0.X) by ospf_ri.c,
+   respectively ospf_ext.c.
+ - ospf_ri.c send back to ospf_sr.c received Router Information LSA and update
+   Self Router Information LSA with paramters provided by ospf_sr.c i.e. SRGB
+   and MSD. It use ospf_opaque.c functions to send/received these Opaque LSAs.
+ - ospf_ext.c send bacl to ospf_sr.c received Extended Prefix and Link Opaque
+   LSA and send self Extended Prefix and Link Opaque LSA through ospf_opaque.c
+   functions.
+
+::
 
                     +-----------+     +-------+
                     |           |     |       |
@@ -72,6 +82,33 @@ the figure below shows the relation between the various files:
                   |               |
                   +---------------+
 
+      Figure1: Overview of Segment Routing interaction
+
+
+Configuration
+-------------
+
+Here it is a simple example of configuration to enable Segment Routing. Note
+that ``opaque capability`` must be set to activate Opaque LSA prior to Segment
+Routing.
+
+::
+
+ router ospf
+ ospf router-id 192.168.1.11
+ capability opaque
+  mpls-te on
+  mpls-te router-address 192.168.1.11
+ router-info area 0.0.0.0
+ segment-routing on
+ segment-routing global-block 10000 19999
+ segment-routing node-msd 8
+ segment-routing prefix 192.168.1.11/32 index 1100
+
+The first segment-routing statement enable it. The Second one set the SRGB,
+third line the MSD and finally, set the Prefix SID index for tha given prefix.
+Note that only prefix of Loopback interface could be configured with a Prefix
+SID.
 
 Known limitations
 -----------------
@@ -80,3 +117,14 @@ Known limitations
  - Only SPF algorithm is supported
  - Extended Prefix Range is not supported
 
+Credits
+-------
+ * Author: Anselme Sawadogo <anselmesawadogo@gmail.com>
+ * Author: Olivier Dugeon <olivier.dugeon@orange.com>
+ * Copyright (C) 2016 - 2018 Orange Labs http://www.orange.com
+
+This work has been performed in the framework of the H2020-ICT-2014
+project 5GEx (Grant Agreement no. 671636), which is partially funded
+by the European Commission.
+
+