]> git.proxmox.com Git - mirror_frr.git/blob - doc/OSPF-SR.rst
f7ab742342ba397af3aa8e88bb9611e1c58d4b0d
[mirror_frr.git] / doc / OSPF-SR.rst
1 OSPF Segment Routing
2 ====================
3
4 This is an EXPERIMENTAL support of draft draft-ietf-ospf-segment-routing-extensions-24.
5 DON'T use it for production network.
6
7 Implementation details
8 ----------------------
9
10 Segment Routing used 3 differents OPAQUE LSA in OSPF to carry the various
11 information:
12
13 - Router Information: flood the Segment Routing capabilities of the node.
14 This include the supported algorithms, the Segment Routing Global Block
15 (SRGB) and the Maximum Stack Depth (MSD).
16 - Extended Link: flood the Adjaceny and Lan Adjacency Segment Identifier
17 - Extended Prefix: flood the Prefix Segment Identifier
18
19 The implementation follow previous TE and Router Information code. It used the
20 OPAQUE LSA functions define in ospf_opaque.[c,h] as well as the OSPF API. This
21 latter is mandatory for the implementation as it provides the Callback to
22 Segment Routing functions (see below) when an Extended Link / Prefix or Router
23 Information is received.
24
25 Following files where modified or added:
26 - ospd_ri.[c,h] have been modified to add the new TLVs for Segment Routing.
27 - ospf_ext.[c,h] implement RFC7684 as base support of Extended Link and Prefix
28 Opaque LSA.
29 - ospf_sr.[c,h] implement the earth of Segment Routing. It adds a new Segment
30 Routing database to manage Segment Identifiers per Link and Prefix and
31 Segment Routing enable node, Callback functions to process incoming LSA and
32 install MPLS FIB entry through Zebra.
33
34 The figure below shows the relation between the various files:
35
36 - ospf_sr.c centralized all the Segment Routing processing. It receives Opaque
37 LSA Router Information (4.0.0.0) from ospf_ri.c and Extended Prefix
38 (7.0.0.X) Link (8.0.0.X) from ospf_ext.c. Once received, it parse TLVs and
39 SubTLVs and store information in SRDB (which is defined in ospf_sr.h). For
40 each received LSA, NHLFE is computed and send to Zebra to add/remove new
41 MPLS labels entries and FEC. New CLI configurations are also centralized in
42 ospf_sr.c. This CLI will trigger the flooding of new LSA Router Information
43 (4.0.0.0), Extended Prefix (7.0.0.X) and Link (8.0.0.X) by ospf_ri.c,
44 respectively ospf_ext.c.
45 - ospf_ri.c send back to ospf_sr.c received Router Information LSA and update
46 Self Router Information LSA with paramters provided by ospf_sr.c i.e. SRGB
47 and MSD. It use ospf_opaque.c functions to send/received these Opaque LSAs.
48 - ospf_ext.c send bacl to ospf_sr.c received Extended Prefix and Link Opaque
49 LSA and send self Extended Prefix and Link Opaque LSA through ospf_opaque.c
50 functions.
51
52 ::
53
54 +-----------+ +-------+
55 | | | |
56 | ospf_sr.c +-----+ SRDB |
57 +-----------+ +--+ | |
58 | +-^-------^-+ | +-------+
59 | | | | |
60 | | | | |
61 | | | | +--------+
62 | | | | |
63 +---v----------+ | | | +-----v-------+
64 | | | | | | |
65 | ospf_ri.c +--+ | +-------+ ospf_ext.c |
66 | LSA 4.0.0.0 | | | LSA 7.0.0.X |
67 | | | | LSA 8.0.0.X |
68 +---^----------+ | | |
69 | | +-----^-------+
70 | | |
71 | | |
72 | +--------v------------+ |
73 | | | |
74 | | ZEBRA: Labels + FEC | |
75 | | | |
76 | +---------------------+ |
77 | |
78 | |
79 | +---------------+ |
80 | | | |
81 +---------> ospf_opaque.c <---------+
82 | |
83 +---------------+
84
85 Figure1: Overview of Segment Routing interaction
86
87
88 Configuration
89 -------------
90
91 Here it is a simple example of configuration to enable Segment Routing. Note
92 that ``opaque capability`` must be set to activate Opaque LSA prior to Segment
93 Routing.
94
95 ::
96
97 router ospf
98 ospf router-id 192.168.1.11
99 capability opaque
100 mpls-te on
101 mpls-te router-address 192.168.1.11
102 router-info area 0.0.0.0
103 segment-routing on
104 segment-routing global-block 10000 19999
105 segment-routing node-msd 8
106 segment-routing prefix 192.168.1.11/32 index 1100
107
108 The first segment-routing statement enable it. The Second one set the SRGB,
109 third line the MSD and finally, set the Prefix SID index for tha given prefix.
110 Note that only prefix of Loopback interface could be configured with a Prefix
111 SID.
112
113 Known limitations
114 -----------------
115
116 - Only single Area is supported. ABR is not yet supported
117 - Only SPF algorithm is supported
118 - Extended Prefix Range is not supported
119
120 Credits
121 -------
122 * Author: Anselme Sawadogo <anselmesawadogo@gmail.com>
123 * Author: Olivier Dugeon <olivier.dugeon@orange.com>
124 * Copyright (C) 2016 - 2018 Orange Labs http://www.orange.com
125
126 This work has been performed in the framework of the H2020-ICT-2014
127 project 5GEx (Grant Agreement no. 671636), which is partially funded
128 by the European Commission.
129
130