| < draft-ietf-ospf-segment-routing-extensions-12.txt | draft-ietf-ospf-segment-routing-extensions-13.txt > | |||
|---|---|---|---|---|
| Open Shortest Path First IGP P. Psenak, Ed. | Open Shortest Path First IGP P. Psenak, Ed. | |||
| Internet-Draft S. Previdi, Ed. | Internet-Draft S. Previdi, Ed. | |||
| Intended status: Standards Track C. Filsfils | Intended status: Standards Track C. Filsfils | |||
| Expires: September 9, 2017 Cisco Systems, Inc. | Expires: November 5, 2017 Cisco Systems, Inc. | |||
| H. Gredler | H. Gredler | |||
| RtBrick Inc. | RtBrick Inc. | |||
| R. Shakir | R. Shakir | |||
| Google, Inc. | Google, Inc. | |||
| W. Henderickx | W. Henderickx | |||
| Nokia | Nokia | |||
| J. Tantsura | J. Tantsura | |||
| Individual | Individual | |||
| March 8, 2017 | May 4, 2017 | |||
| OSPF Extensions for Segment Routing | OSPF Extensions for Segment Routing | |||
| draft-ietf-ospf-segment-routing-extensions-12 | draft-ietf-ospf-segment-routing-extensions-13 | |||
| Abstract | Abstract | |||
| Segment Routing (SR) allows a flexible definition of end-to-end paths | Segment Routing (SR) allows a flexible definition of end-to-end paths | |||
| within IGP topologies by encoding paths as sequences of topological | within IGP topologies by encoding paths as sequences of topological | |||
| sub-paths, called "segments". These segments are advertised by the | sub-paths, called "segments". These segments are advertised by the | |||
| link-state routing protocols (IS-IS and OSPF). | link-state routing protocols (IS-IS and OSPF). | |||
| This draft describes the OSPF extensions required for Segment | This draft describes the OSPF extensions required for Segment | |||
| Routing. | Routing. | |||
| skipping to change at page 2, line 4 ¶ | skipping to change at page 2, line 4 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on September 9, 2017. | This Internet-Draft will expire on November 5, 2017. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2017 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 2, line 38 ¶ | skipping to change at page 2, line 38 ¶ | |||
| 3.2. SID/Label Range TLV . . . . . . . . . . . . . . . . . . . 6 | 3.2. SID/Label Range TLV . . . . . . . . . . . . . . . . . . . 6 | |||
| 3.3. SR Local Block Sub-TLV . . . . . . . . . . . . . . . . . 8 | 3.3. SR Local Block Sub-TLV . . . . . . . . . . . . . . . . . 8 | |||
| 3.4. SRMS Preference Sub-TLV . . . . . . . . . . . . . . . . . 9 | 3.4. SRMS Preference Sub-TLV . . . . . . . . . . . . . . . . . 9 | |||
| 4. OSPF Extended Prefix Range TLV . . . . . . . . . . . . . . . 10 | 4. OSPF Extended Prefix Range TLV . . . . . . . . . . . . . . . 10 | |||
| 5. Prefix SID Sub-TLV . . . . . . . . . . . . . . . . . . . . . 12 | 5. Prefix SID Sub-TLV . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 6. SID/Label Binding Sub-TLV . . . . . . . . . . . . . . . . . . 16 | 6. SID/Label Binding Sub-TLV . . . . . . . . . . . . . . . . . . 16 | |||
| 6.1. ERO Metric Sub-TLV . . . . . . . . . . . . . . . . . . . 17 | 6.1. ERO Metric Sub-TLV . . . . . . . . . . . . . . . . . . . 17 | |||
| 6.2. ERO Sub-TLVs . . . . . . . . . . . . . . . . . . . . . . 18 | 6.2. ERO Sub-TLVs . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 6.2.1. IPv4 ERO Sub-TLV . . . . . . . . . . . . . . . . . . 18 | 6.2.1. IPv4 ERO Sub-TLV . . . . . . . . . . . . . . . . . . 18 | |||
| 6.2.2. Unnumbered Interface ID ERO Sub-TLV . . . . . . . . . 19 | 6.2.2. Unnumbered Interface ID ERO Sub-TLV . . . . . . . . . 19 | |||
| 6.2.3. IPv4 Backup ERO Sub-TLV . . . . . . . . . . . . . . . 20 | 6.2.3. IPv4 Backup ERO Sub-TLV . . . . . . . . . . . . . . . 21 | |||
| 6.2.4. Unnumbered Interface ID Backup ERO Sub-TLV . . . . . 21 | 6.2.4. Unnumbered Interface ID Backup ERO Sub-TLV . . . . . 22 | |||
| 7. Adjacency Segment Identifier (Adj-SID) . . . . . . . . . . . 22 | 7. Adjacency Segment Identifier (Adj-SID) . . . . . . . . . . . 23 | |||
| 7.1. Adj-SID Sub-TLV . . . . . . . . . . . . . . . . . . . . . 23 | 7.1. Adj-SID Sub-TLV . . . . . . . . . . . . . . . . . . . . . 23 | |||
| 7.2. LAN Adj-SID Sub-TLV . . . . . . . . . . . . . . . . . . . 24 | 7.2. LAN Adj-SID Sub-TLV . . . . . . . . . . . . . . . . . . . 25 | |||
| 8. Elements of Procedure . . . . . . . . . . . . . . . . . . . . 26 | 8. Elements of Procedure . . . . . . . . . . . . . . . . . . . . 26 | |||
| 8.1. Intra-area Segment routing in OSPFv2 . . . . . . . . . . 26 | 8.1. Intra-area Segment routing in OSPFv2 . . . . . . . . . . 26 | |||
| 8.2. Inter-area Segment routing in OSPFv2 . . . . . . . . . . 27 | 8.2. Inter-area Segment routing in OSPFv2 . . . . . . . . . . 27 | |||
| 8.3. SID for External Prefixes . . . . . . . . . . . . . . . . 28 | 8.3. Segment Routing for External Prefixes . . . . . . . . . . 28 | |||
| 8.4. Advertisement of Adj-SID . . . . . . . . . . . . . . . . 28 | 8.4. Advertisement of Adj-SID . . . . . . . . . . . . . . . . 29 | |||
| 8.4.1. Advertisement of Adj-SID on Point-to-Point Links . . 28 | 8.4.1. Advertisement of Adj-SID on Point-to-Point Links . . 29 | |||
| 8.4.2. Adjacency SID on Broadcast or NBMA Interfaces . . . . 29 | 8.4.2. Adjacency SID on Broadcast or NBMA Interfaces . . . . 29 | |||
| 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 29 | 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 29 | |||
| 9.1. OSPF OSPF Router Information (RI) TLVs Registry . . . . . 29 | 9.1. OSPF OSPF Router Information (RI) TLVs Registry . . . . . 29 | |||
| 9.2. OSPF Extended Prefix LSA TLV Registry . . . . . . . . . . 29 | 9.2. OSPF Extended Prefix LSA TLV Registry . . . . . . . . . . 30 | |||
| 9.3. OSPF Extended Prefix LSA Sub-TLV Registry . . . . . . . . 29 | 9.3. OSPF Extended Prefix LSA Sub-TLV Registry . . . . . . . . 30 | |||
| 9.4. OSPF Extended Link LSA Sub-TLV Registry . . . . . . . . . 30 | 9.4. OSPF Extended Link LSA Sub-TLV Registry . . . . . . . . . 30 | |||
| 10. Implementation Status . . . . . . . . . . . . . . . . . . . . 30 | 10. Implementation Status . . . . . . . . . . . . . . . . . . . . 30 | |||
| 11. Security Considerations . . . . . . . . . . . . . . . . . . . 32 | 11. Security Considerations . . . . . . . . . . . . . . . . . . . 32 | |||
| 12. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 32 | 12. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 32 | |||
| 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 32 | 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 32 | |||
| 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 32 | 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 32 | |||
| 14.1. Normative References . . . . . . . . . . . . . . . . . . 32 | 14.1. Normative References . . . . . . . . . . . . . . . . . . 32 | |||
| 14.2. Informative References . . . . . . . . . . . . . . . . . 33 | 14.2. Informative References . . . . . . . . . . . . . . . . . 33 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 34 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 34 | |||
| skipping to change at page 3, line 35 ¶ | skipping to change at page 3, line 35 ¶ | |||
| segment is typically a multi-hop path while an adjacency segment, in | segment is typically a multi-hop path while an adjacency segment, in | |||
| most cases, is a one-hop path. SR's control-plane can be applied to | most cases, is a one-hop path. SR's control-plane can be applied to | |||
| both IPv6 and MPLS data-planes, and does not require any additional | both IPv6 and MPLS data-planes, and does not require any additional | |||
| signalling (other than IGP extensions). The IPv6 data plane is out | signalling (other than IGP extensions). The IPv6 data plane is out | |||
| of the scope of this specification - it is not applicable to OSPFv2 | of the scope of this specification - it is not applicable to OSPFv2 | |||
| which only supports the IPv4 address-family. For example, when used | which only supports the IPv4 address-family. For example, when used | |||
| in MPLS networks, SR paths do not require any LDP or RSVP-TE | in MPLS networks, SR paths do not require any LDP or RSVP-TE | |||
| signalling. However, SR can interoperate in the presence of LSPs | signalling. However, SR can interoperate in the presence of LSPs | |||
| established with RSVP or LDP. | established with RSVP or LDP. | |||
| There are additional segment types, e.g., Binding SID defined in | ||||
| [I-D.ietf-spring-segment-routing]. | ||||
| This draft describes the OSPF extensions required for Segment | This draft describes the OSPF extensions required for Segment | |||
| Routing. | Routing. | |||
| Segment Routing architecture is described in | Segment Routing architecture is described in | |||
| [I-D.ietf-spring-segment-routing]. | [I-D.ietf-spring-segment-routing]. | |||
| Segment Routing use cases are described in | Segment Routing use cases are described in | |||
| [I-D.filsfils-spring-segment-routing-use-cases]. | [I-D.filsfils-spring-segment-routing-use-cases]. | |||
| 2. Segment Routing Identifiers | 2. Segment Routing Identifiers | |||
| Segment Routing defines various types of Segment Identifiers (SIDs): | Segment Routing defines various types of Segment Identifiers (SIDs): | |||
| Prefix-SID, Adjacency-SID, LAN Adjacency SID and Binding SID. | Prefix-SID, Adjacency-SID, LAN Adjacency SID, and Binding SID. | |||
| For the purpose of the advertisements of various SID values, new | Extended Prefix/Link Opaque LSAs defined in [RFC7684] are used for | |||
| Opaque LSAs [RFC5250] are defined in [RFC7684]. These LSAs are | advertisements of the various SID types. | |||
| generic containers that can be used to advertise any additional | ||||
| attributes associated with a prefix or link. These Opaque LSAs are | ||||
| complementary to the existing LSAs and are not aimed to replace any | ||||
| of the existing LSAs. | ||||
| 2.1. SID/Label Sub-TLV | 2.1. SID/Label Sub-TLV | |||
| The SID/Label Sub-TLV appears in multiple TLVs or Sub-TLVs defined | The SID/Label Sub-TLV appears in multiple TLVs or Sub-TLVs defined | |||
| later in this document. It is used to advertise the SID or label | later in this document. It is used to advertise the SID or label | |||
| associated with a prefix or adjacency. The SID/Label TLV has | associated with a prefix or adjacency. The SID/Label TLV has | |||
| following format: | following format: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length | | | Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | SID/Label (variable) | | | SID/Label (variable) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| where: | where: | |||
| Type: TBD, suggested value 1 | Type: TBD, suggested value 1 | |||
| Length: variable, 3 or 4 octet | Length: Variable, 3 or 4 octet | |||
| SID/Label: If length is set to 3, then the 20 rightmost bits | SID/Label: If length is set to 3, then the 20 rightmost bits | |||
| represent a label. If length is set to 4, then the value | represent a label. If length is set to 4, then the value | |||
| represents a 32-bit SID. | represents a 32-bit SID. | |||
| The receiving router MUST ignore SID/Label Sub-TLV if the length | The receiving router MUST ignore the SID/Label Sub-TLV if the | |||
| is other then 3 or 4. | length is other then 3 or 4. | |||
| 3. Segment Routing Capabilities | 3. Segment Routing Capabilities | |||
| Segment Routing requires some additional router capabilities to be | Segment Routing requires some additional router capabilities to be | |||
| advertised to other routers in the area. | advertised to other routers in the area. | |||
| These SR capabilities are advertised in the Router Information Opaque | These SR capabilities are advertised in the Router Information Opaque | |||
| LSA (defined in [RFC7770]). | LSA (defined in [RFC7770]). | |||
| 3.1. SR-Algorithm TLV | 3.1. SR-Algorithm TLV | |||
| The SR-Algorithm TLV is a top-level TLV of the Router Information | The SR-Algorithm TLV is a top-level TLV of the Router Information | |||
| Opaque LSA (defined in [RFC7770]). | Opaque LSA (defined in [RFC7770]). | |||
| The SR-Algorithm Sub-TLV is optional. It MAY only be advertised once | The SR-Algorithm TLV is optional. It MUST only be advertised once in | |||
| in the Router Information Opaque LSA. If the SID/Label Range TLV, as | the Router Information Opaque LSA. If the SID/Label Range TLV, as | |||
| defined in Section 3.2, is advertised, then the SR-Algorithm TLV MUST | defined in Section 3.2, is advertised, then the SR-Algorithm TLV MUST | |||
| also be advertised. If the SR-Algorithm TLV is not advertised by the | also be advertised. If the SR-Algorithm TLV is not advertised by the | |||
| node, such node is considered as not being segment routing capable. | node, such node is considered as not being segment routing capable. | |||
| An SR Router may use various algorithms when calculating reachability | An SR Router may use various algorithms when calculating reachability | |||
| to OSPF routers or prefixes in an OSPF area. Examples of these | to OSPF routers or prefixes in an OSPF area. Examples of these | |||
| algorithms are metric based Shortest Path First (SPF), various | algorithms are metric based Shortest Path First (SPF), various | |||
| flavors of Constrained SPF, etc. The SR-Algorithm TLV allows a | flavors of Constrained SPF, etc. The SR-Algorithm TLV allows a | |||
| router to advertise the algorithms currently used by the router to | router to advertise the algorithms currently used by the router to | |||
| other routers in an OSPF area. The SR-Algorithm TLV has following | other routers in an OSPF area. The SR-Algorithm TLV has following | |||
| skipping to change at page 5, line 29 ¶ | skipping to change at page 5, line 29 ¶ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Algorithm 1 | Algorithm... | Algorithm n | | | | Algorithm 1 | Algorithm... | Algorithm n | | | |||
| +- -+ | +- -+ | |||
| | | | | | | |||
| + + | + + | |||
| where: | where: | |||
| Type: TBD, suggested value 8 | Type: TBD, suggested value 8 | |||
| Length: variable | Length: Variable | |||
| Algorithm: Single octet identifying the algorithm. The following | Algorithm: Single octet identifying the algorithm. The following | |||
| values are defined by this document: | values are defined by this document: | |||
| 0: Shortest Path First (SPF) algorithm based on link metric. | 0: Shortest Path First (SPF) algorithm based on link metric. | |||
| This is the standard shortest path algorithm as computed by the | This is the standard shortest path algorithm as computed by the | |||
| OSPF protocol. Consistent with the deployed practice for link- | OSPF protocol. Consistent with the deployed practice for link- | |||
| state protocols, Algorithm 0 permits any node to overwrite the | state protocols, Algorithm 0 permits any node to overwrite the | |||
| SPF path with a different path based on its local policy. If | SPF path with a different path based on its local policy. If | |||
| the SR-Algorithm Sub-TLV is advertised, Algorithm 0 MUST be | the SR-Algorithm TLV is advertised, Algorithm 0 MUST be | |||
| included. | included. | |||
| 1: Strict Shortest Path First (SPF) algorithm based on link | 1: Strict Shortest Path First (SPF) algorithm based on link | |||
| metric. The algorithm is identical to Algorithm 0 but | metric. The algorithm is identical to Algorithm 0 but | |||
| Algorithm 1 requires that all nodes along the path will honor | Algorithm 1 requires that all nodes along the path will honor | |||
| the SPF routing decision. Local policy at the node claiming | the SPF routing decision. Local policy at the node claiming | |||
| support for Algorithm 1 MUST NOT alter the SPF paths computed | support for Algorithm 1 MUST NOT alter the SPF paths computed | |||
| by Algorithm 1. | by Algorithm 1. | |||
| When multiple SR-Algorithm sub-TLVs are received from a given router | When multiple SR-Algorithm TLVs are received from a given router, the | |||
| the receiver SHOULD use the first occurrence of the sub-TLV in the | receiver SHOULD use the first occurrence of the TLV in the Router | |||
| Router Information LSA. If the SR-Algorithm sub-TLV appears in | Information LSA. If the SR-Algorithm TLV appears in multiple Router | |||
| multiple Router Information LSAs that have different flooding scopes, | Information LSAs that have different flooding scopes, the SR- | |||
| the SR-Algorithm sub-TLV in the Router Information LSA with the | Algorithm TLV in the Router Information LSA with the narrowest | |||
| lowest flooding scope SHOULD be used. If the SR-Algorithm sub-TLV | flooding scope SHOULD be used. If the SR-Algorithm TLV appears in | |||
| appears in multiple Router Information LSAs that have the same | multiple Router Information LSAs that have the same flooding scope, | |||
| flooding scope, the SR-Algorithm sub-TLV in the Router Information | the SR-Algorithm TLV in the Router Information LSA with the | |||
| LSA with the numerically smallest Instance ID SHOULD be used and | numerically smallest Instance ID SHOULD be used and subsequent | |||
| subsequent instances of the SR-Algorithm sub-TLV SHOULD be ignored. | instances of the SR-Algorithm TLV SHOULD be ignored. | |||
| The RI LSA can be advertised at any of the defined opaque flooding | The RI LSA can be advertised at any of the defined opaque flooding | |||
| scopes (link, area, or Autonomous System (AS)). For the purpose of | scopes (link, area, or Autonomous System (AS)). For the purpose of | |||
| SR-Algorithm TLV advertisement, area scope flooding is required. | SR-Algorithm TLV advertisement, area scope flooding is required. | |||
| 3.2. SID/Label Range TLV | 3.2. SID/Label Range TLV | |||
| The SID/Label Range TLV is a top-level TLV of the Router Information | The SID/Label Range TLV is a top-level TLV of the Router Information | |||
| Opaque LSA (defined in [RFC7770]). | Opaque LSA (defined in [RFC7770]). | |||
| skipping to change at page 6, line 40 ¶ | skipping to change at page 6, line 40 ¶ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Sub-TLVs (variable) | | | Sub-TLVs (variable) | | |||
| +- -+ | +- -+ | |||
| | | | | | | |||
| + + | + + | |||
| where: | where: | |||
| Type: TBD, suggested value 9 | Type: TBD, suggested value 9 | |||
| Length: variable | Length: Variable | |||
| Range Size: 3 octets of the SID/label range | Range Size: 3-octet SID/label range size (i.e., the number of SIDs | |||
| or labels in the range including the first SID/label). It MUST be | ||||
| greater than 0. | ||||
| Initially, the only supported Sub-TLV is the SID/Label TLV as defined | Initially, the only supported Sub-TLV is the SID/Label TLV as defined | |||
| in Section 2.1. The SID/Label advertised in the SID/Label TLV | in Section 2.1. The SID/Label advertised in the SID/Label TLV | |||
| represents the first SID/Label in the advertised range. | represents the first SID/Label in the advertised range. | |||
| Multiple occurrences of the SID/Label Range TLV MAY be advertised, in | Multiple occurrences of the SID/Label Range TLV MAY be advertised, in | |||
| order to advertise multiple ranges. In such case: | order to advertise multiple ranges. In such case: | |||
| o The originating router MUST encode each range into a different | o The originating router MUST encode each range into a different | |||
| SID/Label Range TLV. | SID/Label Range TLV. | |||
| o The originating router decides the order in which the set of SID/ | o The originating router decides the order in which the set of SID/ | |||
| Label Range TLVs are advertised inside the Router Information | Label Range TLVs are advertised inside the Router Information | |||
| Opaque LSA. The originating router MUST ensure the order is the | Opaque LSA. The originating router MUST ensure the order is the | |||
| same after a graceful restart (using checkpointing, non-volatile | same after a graceful restart (using checkpointing, non-volatile | |||
| storage or any other mechanism) in order to assure the SID/label | storage, or any other mechanism) in order to assure the SID/label | |||
| range and SID index correspondence is preserved across graceful | range and SID index correspondence is preserved across graceful | |||
| restarts. | restarts. | |||
| o The receiving router must adhere to the order in which the ranges | o The receiving router MUST adhere to the order in which the ranges | |||
| are advertised when calculating a SID/label from a SID index. | are advertised when calculating a SID/label from a SID index. | |||
| The following example illustrates the advertisement of multiple | The following example illustrates the advertisement of multiple | |||
| ranges: | ranges: | |||
| The originating router advertises following ranges: | The originating router advertises the following ranges: | |||
| Range 1: [100, 199] | Range 1: [100, 199] | |||
| Range 2: [1000, 1099] | Range 2: [1000, 1099] | |||
| Range 3: [500, 599] | Range 3: [500, 599] | |||
| The receiving routers concatenate the ranges and build the Segment | The receiving routers concatenate the ranges and build the Segment | |||
| Routing Global Block (SRGB) as follows: | Routing Global Block (SRGB) as follows: | |||
| SRGB = [100, 199] | SRGB = [100, 199] | |||
| [1000, 1099] | [1000, 1099] | |||
| [500, 599] | [500, 599] | |||
| skipping to change at page 8, line 9 ¶ | skipping to change at page 8, line 9 ¶ | |||
| ... | ... | |||
| The RI LSA can be advertised at any of the defined flooding scopes | The RI LSA can be advertised at any of the defined flooding scopes | |||
| (link, area, or autonomous system (AS)). For the purpose of SID/ | (link, area, or autonomous system (AS)). For the purpose of SID/ | |||
| Label Range TLV advertisement, area scope flooding is required. | Label Range TLV advertisement, area scope flooding is required. | |||
| 3.3. SR Local Block Sub-TLV | 3.3. SR Local Block Sub-TLV | |||
| The SR Local Block (SRLB) Sub-TLV contains the range of labels the | The SR Local Block (SRLB) Sub-TLV contains the range of labels the | |||
| node has reserved for local SIDs. Local SIDs are used, e.g., for | node has reserved for local SIDs. Local SIDs are used, e.g., for | |||
| Adjacency-SIDs, and may also be allocated by other components than | Adjacency-SIDs, and may also be allocated by components other than | |||
| OSPF protocol. As an example, an application or a controller may | the OSPF protocol. As an example, an application or a controller may | |||
| instruct the router to allocate a specific local SID. Therefore, in | instruct the router to allocate a specific local SID. Therefore, in | |||
| order for such applications or controllers to know what are the local | order for such applications or controllers to know what local SIDs | |||
| SIDs available in the router, it is required that the router | are available on the router, it is required that the router | |||
| advertises its SRLB. The SRLB Sub-TLV is used for that purpose. | advertises its SRLB. The SRLB Sub-TLV is used for that purpose. | |||
| The SR Local Block (SRLB) Sub-TLV is a top-level TLV of the Router | The SR Local Block (SRLB) Sub-TLV is a top-level TLV of the Router | |||
| Information Opaque LSA (defined in [RFC7770]). | Information Opaque LSA (defined in [RFC7770]). | |||
| The SR Local Block Sub-TLV MAY appear multiple times in the Router | The SR Local Block Sub-TLV MAY appear multiple times in the Router | |||
| Information Opaque LSA and has the following format: | Information Opaque LSA and has the following format: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| skipping to change at page 8, line 38 ¶ | skipping to change at page 8, line 38 ¶ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Sub-TLVs (variable) | | | Sub-TLVs (variable) | | |||
| +- -+ | +- -+ | |||
| | | | | | | |||
| + + | + + | |||
| where: | where: | |||
| Type: TBD, suggested value 12 | Type: TBD, suggested value 12 | |||
| Length: variable | Length: Variable | |||
| Range Size: 3 octets of the SID/label range. MUST be higher then | Range Size: 3-octet SID/label range size (i.e., the number of SIDs | |||
| 0. | or labels in the range including the first SID/label). It MUST be | |||
| greater than 0. | ||||
| Initially, the only supported Sub-TLV is the SID/Label TLV as defined | Initially, the only supported Sub-TLV is the SID/Label TLV as defined | |||
| in Section 2.1. The SID/Label advertised in the SID/Label TLV | in Section 2.1. The SID/Label advertised in the SID/Label TLV | |||
| represents the first SID/Label in the advertised range. | represents the first SID/Label in the advertised range. | |||
| The originating router MUST NOT advertise overlapping ranges. | The originating router MUST NOT advertise overlapping ranges. | |||
| Each time a SID from the SRLB is allocated, it SHOULD also be | Each time a SID from the SRLB is allocated, it SHOULD also be | |||
| reported to all components (e.g.: controller or applications) in | reported to all components (e.g., controller or applications) in | |||
| order for these components to have an up-to-date view of the current | order for these components to have an up-to-date view of the current | |||
| SRLB allocation. This is required to avoid collision between | SRLB allocation. This is required to avoid collisions between | |||
| allocation instructions. | allocation instructions. | |||
| Within the context of OSPF, the reporting of local SIDs is done | Within the context of OSPF, the reporting of local SIDs is done | |||
| through OSPF Sub-TLVs such as the Adjacency-SID (Section 7). | through OSPF Sub-TLVs such as the Adjacency-SID (Section 7). | |||
| However, the reporting of allocated local SIDs may also be done | However, the reporting of allocated local SIDs may also be done | |||
| through other means and protocols which mechanisms are outside the | through other means and protocols which are outside the scope of this | |||
| scope of this document. | document. | |||
| A router advertising the SRLB TLV may also have other label ranges, | A router advertising the SRLB TLV may also have other label ranges, | |||
| outside of the SRLB, used for its local allocation purposes which are | outside of the SRLB, used for its local allocation purposes which are | |||
| NOT advertised in the SRLB. For example, it is possible that an | NOT advertised in the SRLB. For example, it is possible that an | |||
| Adjacency-SID is allocated using a local label that is not part of | Adjacency-SID is allocated using a local label that is not part of | |||
| the SRLB. | the SRLB. | |||
| The RI LSA can be advertised at any of the defined flooding scopes | The RI LSA can be advertised at any of the defined flooding scopes | |||
| (link, area, or autonomous system (AS)). For the purpose of SR Local | (link, area, or autonomous system (AS)). For the purpose of SR Local | |||
| Block Sub-TLV TLV advertisement, area scope flooding is required. | Block Sub-TLV TLV advertisement, area scope flooding is required. | |||
| 3.4. SRMS Preference Sub-TLV | 3.4. SRMS Preference Sub-TLV | |||
| The Segment Routing Mapping Server (SRMS) Preference sub-TLV is used | The Segment Routing Mapping Server (SRMS) Preference sub-TLV is used | |||
| to advertise a preference associated with the node that acts as a SR | to advertise a preference associated with the node that acts as an SR | |||
| Mapping Server. SRMS preference is defined in | Mapping Server. SRMS preference is defined in | |||
| [I-D.ietf-spring-conflict-resolution]. | [I-D.ietf-spring-conflict-resolution]. | |||
| The SRMS Preference Sub-TLV is a top-level TLV of the Router | The SRMS Preference Sub-TLV is a top-level TLV of the Router | |||
| Information Opaque LSA (defined in [RFC7770]). | Information Opaque LSA (defined in [RFC7770]). | |||
| The SRMS Preference Sub-TLV MAY only be advertised once in the Router | The SRMS Preference Sub-TLV MAY only be advertised once in the Router | |||
| Information Opaque LSA and has the following format: | Information Opaque LSA and has the following format: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| skipping to change at page 10, line 6 ¶ | skipping to change at page 10, line 6 ¶ | |||
| where: | where: | |||
| Type: TBD, suggested value 13 | Type: TBD, suggested value 13 | |||
| Length: 4 octets | Length: 4 octets | |||
| Preference: 1 octet. SRMS preference value from 0 to 255. | Preference: 1 octet. SRMS preference value from 0 to 255. | |||
| When multiple SRMS Preference sub-TLVs are received from a given | When multiple SRMS Preference sub-TLVs are received from a given | |||
| router the receiver SHOULD use the first occurrence of the sub-TLV in | router, the receiver SHOULD use the first occurrence of the sub-TLV | |||
| the Router Information LSA. If the SRMS Preference sub-TLV appears | in the Router Information LSA. If the SRMS Preference sub-TLV | |||
| in multiple Router Information LSAs that have different flooding | appears in multiple Router Information LSAs that have different | |||
| scopes, the SRLB sub-TLV in the Router Information LSA with the | flooding scopes, the SRLB sub-TLV in the Router Information LSA with | |||
| lowest flooding scope SHOULD be used. If the SRMS Preference sub-TLV | the narrowest flooding scope SHOULD be used. If the SRMS Preference | |||
| appears in multiple Router Information LSAs that have the same | sub-TLV appears in multiple Router Information LSAs that have the | |||
| flooding scope, the SRMS Preference sub-TLV in the Router Information | same flooding scope, the SRMS Preference sub-TLV in the Router | |||
| LSA with the numerically smallest Instance ID SHOULD be used and | Information LSA with the numerically smallest Instance ID SHOULD be | |||
| subsequent instances of the SRMS Preference sub-TLV SHOULD be | used and subsequent instances of the SRMS Preference sub-TLV SHOULD | |||
| ignored. | be ignored. | |||
| The RI LSA can be advertised at any of the defined flooding scopes | The RI LSA can be advertised at any of the defined flooding scopes | |||
| (link, area, or autonomous system (AS)). For the purpose of the SRMS | (link, area, or autonomous system (AS)). For the purpose of the SRMS | |||
| Preference Sub-TLV advertisement, AS scope flooding is required. If | Preference Sub-TLV advertisement, AS scope flooding is required. If | |||
| the SRMS advertisements from the SRMS server are only used inside the | the SRMS advertisements from the SRMS server are only used inside the | |||
| area to which the SRMS server is attached, area scope flooding may be | area to which the SRMS server is attached, area scope flooding may be | |||
| used. | used. | |||
| 4. OSPF Extended Prefix Range TLV | 4. OSPF Extended Prefix Range TLV | |||
| In some cases it is useful to advertise attributes for a range of | In some cases it is useful to advertise attributes for a range of | |||
| prefixes. The Segment Routing Mapping Server, which is described in | prefixes. The Segment Routing Mapping Server, which is described in | |||
| [I-D.filsfils-spring-segment-routing-ldp-interop], is an example | [I-D.filsfils-spring-segment-routing-ldp-interop], is an example | |||
| where we need a single advertisement to advertise SIDs for multiple | where we need a single advertisement to advertise SIDs for multiple | |||
| prefixes from a contiguous address range. | prefixes from a contiguous address range. | |||
| The OSPF Extended Prefix Range TLV, which is a new top level TLV of | The OSPF Extended Prefix Range TLV, which is a top level TLV of the | |||
| the Extended Prefix LSA described in [RFC7684] is defined for this | Extended Prefix LSA described in [RFC7684] is defined for this | |||
| purpose. | purpose. | |||
| Multiple OSPF Extended Prefix Range TLVs MAY be advertised in each | Multiple OSPF Extended Prefix Range TLVs MAY be advertised in each | |||
| OSPF Extended Prefix Opaque LSA, but all prefix ranges included in a | OSPF Extended Prefix Opaque LSA, but all prefix ranges included in a | |||
| single OSPF Extended Prefix Opaque LSA MUST have the same flooding | single OSPF Extended Prefix Opaque LSA MUST have the same flooding | |||
| scope. The OSPF Extended Prefix Range TLV has the following format: | scope. The OSPF Extended Prefix Range TLV has the following format: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| skipping to change at page 11, line 28 ¶ | skipping to change at page 11, line 28 ¶ | |||
| | | | | | | |||
| where: | where: | |||
| Type: TBD, suggested value 2. | Type: TBD, suggested value 2. | |||
| Length: Variable | Length: Variable | |||
| Prefix length: Length of the prefix | Prefix length: Length of the prefix | |||
| AF: 0 - IPv4 unicast | AF: Address family for the prefix. Currently, the only supported | |||
| value is 0 for IPv4 unicast. The inclusion of address family in | ||||
| this TLV allows for future extension. | ||||
| Range size: Represents the number of prefixes that are covered by | Range size: Represents the number of prefixes that are covered by | |||
| the advertisement. The Range Size MUST NOT exceed the number of | the advertisement. The Range Size MUST NOT exceed the number of | |||
| prefixes that could be satisfied by the prefix length without | prefixes that could be satisfied by the prefix length without | |||
| including the IPv4 multicast address range (224.0.0.0/3). | including the IPv4 multicast address range (224.0.0.0/3). | |||
| Flags: Single octet field. The following flags are defined: | Flags: Single octet field. The following flags are defined: | |||
| 0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | |||
| +--+--+--+--+--+--+--+--+ | +--+--+--+--+--+--+--+--+ | |||
| |IA| | | | | | | | | |IA| | | | | | | | | |||
| +--+--+--+--+--+--+--+--+ | +--+--+--+--+--+--+--+--+ | |||
| where: | where: | |||
| IA-Flag: Inter-Area flag. If set, advertisement is of inter- | IA-Flag: Inter-Area flag. If set, advertisement is of inter- | |||
| area type. The ABR that is advertising the OSPF Extended | area type. An ABR that is advertising the OSPF Extended Prefix | |||
| Prefix Range TLV between areas MUST set this bit. | Range TLV between areas MUST set this bit. | |||
| This bit is used to prevent redundant flooding of Prefix Range | This bit is used to prevent redundant flooding of Prefix Range | |||
| TLVs between areas as follows: | TLVs between areas as follows: | |||
| An ABR always prefers intra-area Prefix Range advertisements | An ABR always prefers intra-area Prefix Range advertisements | |||
| over inter-area advertisements. | over inter-area advertisements. | |||
| An ABR does not consider inter-area Prefix Range | An ABR does not consider inter-area Prefix Range | |||
| advertisements coming from non-backbone areas. | advertisements coming from non-backbone areas. | |||
| An ABR only propagates an inter-area Prefix Range | An ABR only propagates an inter-area Prefix Range | |||
| advertisement from the backbone area to connected non- | advertisement from the backbone area to connected non- | |||
| backbone areas if the advertisement is considered to be the | backbone areas if the advertisement is considered to be the | |||
| best one. | best one. | |||
| Address Prefix: The prefix, encoded as an even multiple of 32-bit | Address Prefix: The prefix, encoded as 32-bit value, padded with | |||
| words, padded with zero bits as necessary. This encoding consumes | zero bits as necessary. The prefix represents the first prefix in | |||
| ((PrefixLength + 31) / 32) 32-bit words. The Address Prefix | the prefix range. | |||
| represents the first prefix in the prefix range. | ||||
| 5. Prefix SID Sub-TLV | 5. Prefix SID Sub-TLV | |||
| The Prefix SID Sub-TLV is a Sub-TLV of the OSPF Extended Prefix TLV | The Prefix SID Sub-TLV is a Sub-TLV of the OSPF Extended Prefix TLV | |||
| described in [RFC7684] and the OSPF Extended Prefix Range TLV | described in [RFC7684] and the OSPF Extended Prefix Range TLV | |||
| described in Section 4. It MAY appear more than once in the parent | described in Section 4. It MAY appear more than once in the parent | |||
| TLV and has the following format: | TLV and has the following format: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| skipping to change at page 13, line 49 ¶ | skipping to change at page 13, line 49 ¶ | |||
| SID/Index/Label: According to the V and L flags, it contains | SID/Index/Label: According to the V and L flags, it contains | |||
| either: | either: | |||
| A 32-bit index defining the offset in the SID/Label space | A 32-bit index defining the offset in the SID/Label space | |||
| advertised by this router. | advertised by this router. | |||
| A 24-bit label where the 20 rightmost bits are used for | A 24-bit label where the 20 rightmost bits are used for | |||
| encoding the label value. | encoding the label value. | |||
| If multiple Prefix-SIDs are advertised for the same prefix, the | If multiple Prefix-SIDs are advertised for the same prefix, the | |||
| receiving router MUST use the first encoded SID and MAY use the | receiving router MUST use the first encoded SID and MAY use | |||
| subsequent SIDs. | subsequent SIDs. | |||
| When propagating Prefix-SIDs between areas, if multiple prefix-SIDs | When propagating Prefix-SIDs between areas, if multiple prefix-SIDs | |||
| are advertised for a prefix, an implementation SHOULD preserve the | are advertised for a prefix, an implementation SHOULD preserve the | |||
| original order when advertising prefix-SIDs to other areas. This | original order when advertising prefix-SIDs to other areas. This | |||
| allows implementations that only support a single Prefix-SID to have | allows implementations that only support a single Prefix-SID to have | |||
| a consistent view across areas. | a consistent view across areas. | |||
| When calculating the outgoing label for the prefix, the router MUST | When calculating the outgoing label for the prefix, the router MUST | |||
| take into account the E and P flags advertised by the next-hop router | take into account the E and P flags advertised by the next-hop router | |||
| if that router advertised the SID for the prefix. This MUST be done | if that router advertised the SID for the prefix. This MUST be done | |||
| regardless of whether the next-hop router contributes to the best | regardless of whether the next-hop router contributes to the best | |||
| path to the prefix. | path to the prefix. | |||
| The NP-Flag (No-PHP) MUST be set for Prefix-SIDs allocated to inter- | The NP-Flag (No-PHP) MUST be set for Prefix-SIDs allocated to inter- | |||
| area prefixes that are originated by the ABR based on intra-area or | area prefixes that are originated by the ABR based on intra-area or | |||
| inter-area reachability between areas. When the inter-area prefix is | inter-area reachability between areas. When the inter-area prefix is | |||
| generated based on a prefix which is directly attached to the ABR, | generated based on a prefix which is directly attached to the ABR, | |||
| the NP-Flag SHOULD NOT be set. | the NP-Flag SHOULD NOT be set. | |||
| The NP-Flag (No-PHP) MUST be be set for the Prefix-SIDs allocated to | The NP-Flag (No-PHP) MUST be be set for Prefix-SIDs allocated to | |||
| redistributed prefixes, unless the redistributed prefix is directly | redistributed prefixes, unless the redistributed prefix is directly | |||
| attached to the ASBR, in which case the NP-flag SHOULD NOT be set. | attached to the ASBR, in which case the NP-flag SHOULD NOT be set. | |||
| If the NP-Flag is not set, then any upstream neighbor of the Prefix- | If the NP-Flag is not set, then any upstream neighbor of the Prefix- | |||
| SID originator MUST pop the Prefix-SID. This is equivalent to the | SID originator MUST pop the Prefix-SID. This is equivalent to the | |||
| penultimate hop popping mechanism used in the MPLS dataplane. In | penultimate hop popping mechanism used in the MPLS dataplane. In | |||
| such case, MPLS EXP bits of the Prefix-SID are not preserved for the | such case, MPLS EXP bits of the Prefix-SID are not preserved for the | |||
| final destination (the Prefix-SID being removed). If the NP-flag is | final destination (the Prefix-SID being removed). If the NP-flag is | |||
| not set then the received E-flag is ignored. | not set then the received E-flag is ignored. | |||
| skipping to change at page 15, line 7 ¶ | skipping to change at page 15, line 7 ¶ | |||
| label. This is useful, e.g., when the originator of the Prefix- | label. This is useful, e.g., when the originator of the Prefix- | |||
| SID is the final destination for the related prefix and the | SID is the final destination for the related prefix and the | |||
| originator wishes to receive the packet with the original EXP | originator wishes to receive the packet with the original EXP | |||
| bits. | bits. | |||
| When the M-Flag is set, the NP-flag and the E-flag MUST be ignored at | When the M-Flag is set, the NP-flag and the E-flag MUST be ignored at | |||
| reception. | reception. | |||
| As the Mapping Server does not specify the originator of a prefix | As the Mapping Server does not specify the originator of a prefix | |||
| advertisement, it is not possible to determine PHP behavior solely | advertisement, it is not possible to determine PHP behavior solely | |||
| based on the Mapping Server advertisement. However, PHP behavior may | based on the Mapping Server advertisement. However, PHP behavior | |||
| safely be done in following cases: | SHOULD be done in following cases: | |||
| The Prefix is intra-area type and the downstream neighbor is the | The Prefix is intra-area type and the downstream neighbor is the | |||
| originator of the prefix. | originator of the prefix. | |||
| The Prefix is inter-area type and downstream neighbor is an ABR, | The Prefix is inter-area type and downstream neighbor is an ABR, | |||
| which is advertising the prefix reachability and is also | which is advertising prefix reachability and is also generating | |||
| generating the Extended Prefix TLV with the A-flag set for this | the Extended Prefix TLV with the A-flag set for this prefix as | |||
| prefix as described in section 2.1 of [RFC7684]. | described in section 2.1 of [RFC7684]. | |||
| The Prefix is external type and downstream neighbor is an ASBR, | The Prefix is external type and downstream neighbor is an ASBR, | |||
| which is advertising the prefix reachability and is also | which is advertising prefix reachability and is also generating | |||
| generating the Extended Prefix TLV with the A-flag set for this | the Extended Prefix TLV with the A-flag set for this prefix as | |||
| prefix as described in section 2.1 of [RFC7684]. | described in section 2.1 of [RFC7684]. | |||
| When a Prefix-SID is advertised in an Extended Prefix Range TLV, then | When a Prefix-SID is advertised in an Extended Prefix Range TLV, then | |||
| the value advertised in Prefix SID Sub-TLV is interpreted as a | the value advertised in the Prefix SID Sub-TLV is interpreted as a | |||
| starting SID value. | starting SID value. | |||
| Example 1: If the following router addresses (loopback addresses) | Example 1: If the following router addresses (loopback addresses) | |||
| need to be mapped into the corresponding Prefix SID indexes: | need to be mapped into the corresponding Prefix SID indexes: | |||
| Router-A: 192.0.2.1/32, Prefix-SID: Index 1 | Router-A: 192.0.2.1/32, Prefix-SID: Index 1 | |||
| Router-B: 192.0.2.2/32, Prefix-SID: Index 2 | Router-B: 192.0.2.2/32, Prefix-SID: Index 2 | |||
| Router-C: 192.0.2.3/32, Prefix-SID: Index 3 | Router-C: 192.0.2.3/32, Prefix-SID: Index 3 | |||
| Router-D: 192.0.2.4/32, Prefix-SID: Index 4 | Router-D: 192.0.2.4/32, Prefix-SID: Index 4 | |||
| skipping to change at page 16, line 12 ¶ | skipping to change at page 16, line 12 ¶ | |||
| 10.1.6/24, Prefix-SID: Index 56 | 10.1.6/24, Prefix-SID: Index 56 | |||
| 10.1.7/24, Prefix-SID: Index 57 | 10.1.7/24, Prefix-SID: Index 57 | |||
| then the Prefix field in the Extended Prefix Range TLV would be set | then the Prefix field in the Extended Prefix Range TLV would be set | |||
| to 10.1.1.0, Prefix Length would be set to 24, Range Size would be 7, | to 10.1.1.0, Prefix Length would be set to 24, Range Size would be 7, | |||
| and the Index value in the Prefix-SID Sub-TLV would be set to 51. | and the Index value in the Prefix-SID Sub-TLV would be set to 51. | |||
| 6. SID/Label Binding Sub-TLV | 6. SID/Label Binding Sub-TLV | |||
| The SID/Label Binding Sub-TLV is used to advertise a SID/Label | The SID/Label Binding Sub-TLV is used to advertise a SID/Label | |||
| mapping for a path to the prefix. | mapping for a path to the a prefix. | |||
| The SID/Label Binding Sub-TLV MAY be originated by any router in an | The SID/Label Binding Sub-TLV MAY be originated by any router in an | |||
| OSPF domain. The router may advertise a SID/Label binding to a FEC | OSPF domain. The router may advertise a SID/Label binding to a FEC | |||
| along with at least a single 'nexthop style' anchor. The protocol | along with at least a single 'nexthop style' anchor. The protocol | |||
| supports more than one 'nexthop style' anchor to be attached to a | supports more than one 'nexthop style' anchor to be attached to a | |||
| SID/Label binding, which results in a simple path description | SID/Label binding, which results in a simple path description | |||
| language. In analogy to RSVP, the terminology for this is called an | language. Analogous to RSVP, the terminology for this is called an | |||
| 'Explicit Route Object' (ERO). Since ERO style path notation allows | 'Explicit Route Object' (ERO). Since ERO-style path notation allows | |||
| anchoring SID/label bindings to both link and node IP addresses, any | anchoring SID/label bindings to both link and node IP addresses, any | |||
| Label Switched Path (LSP) can be described. Additionally, SID/Label | Label Switched Path (LSP) can be described. Additionally, SID/Label | |||
| Bindings from external protocols can be easily re-advertised. | Bindings from external protocols can be easily re-advertised. | |||
| The SID/Label Binding Sub-TLV may be used for advertising SID/Label | The SID/Label Binding Sub-TLV may be used for advertising SID/Label | |||
| Bindings and their associated Primary and Backup paths. In a single | Bindings and their associated Primary and Backup paths. In a single | |||
| TLV, a primary ERO Path, backup ERO Path, or both can be advertised. | TLV, a primary ERO Path, backup ERO Path, or both can be advertised. | |||
| If a router wants to advertise multiple parallel paths, then it can | If a router wants to advertise multiple parallel paths, then it can | |||
| generate several TLVs for the same Prefix/FEC. Each occurrence of a | generate several TLVs for the same Prefix/FEC. Each occurrence of a | |||
| Binding TLV for a given FEC Prefix will add a new path. | Binding TLV for a given FEC Prefix will add a new path. | |||
| skipping to change at page 17, line 19 ¶ | skipping to change at page 17, line 19 ¶ | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| |M| | | |M| | | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| where: | where: | |||
| M-bit - When the bit is set, the binding represents a mirroring | M-bit - When the bit is set, the binding represents a mirroring | |||
| context as defined in | context as defined in | |||
| [I-D.minto-rsvp-lsp-egress-fast-protection]. | [I-D.minto-rsvp-lsp-egress-fast-protection]. | |||
| Other bits: Reserved. These MUST be zero when sent and are | ||||
| ignored when received. | ||||
| MT-ID: Multi-Topology ID (as defined in [RFC4915]). | MT-ID: Multi-Topology ID (as defined in [RFC4915]). | |||
| Weight: Weight used for load-balancing purposes. The use of the | Weight: 8 bits of weight used for load-balancing purposes. The | |||
| weight is defined in [I-D.ietf-spring-segment-routing]. | use of the weight is defined in [I-D.ietf-spring-segment-routing]. | |||
| The SID/Label Binding Sub-TLV supports the following Sub-TLVs: | The SID/Label Binding Sub-TLV supports the following Sub-TLVs: | |||
| SID/Label Sub-TLV as described in Section 2.1. This Sub-TLV MUST | SID/Label Sub-TLV as described in Section 2.1. This Sub-TLV MUST | |||
| appear in the SID/Label Binding Sub-TLV and it SHOULD only appear | appear in the SID/Label Binding Sub-TLV and it SHOULD only appear | |||
| once. If the SID/Label Sub-TLV is not included in the SID/Label | once. If the SID/Label Sub-TLV is not included in the SID/Label | |||
| Binding Sub-TLV, the SID/Label Binding Sub-TLV MUST be ignored. | Binding Sub-TLV, the SID/Label Binding Sub-TLV MUST be ignored. | |||
| If the SID/Label Sub-TLV appears in the SID/Label Binding Sub-TLV | If the SID/Label Sub-TLV appears in the SID/Label Binding Sub-TLV | |||
| more than once, instances other than the first will be ignored and | more than once, instances other than the first SHOULD be ignored | |||
| the condition SHOULD be logged for possible action by the network | and the condition SHOULD be logged for possible action by the | |||
| operator. | network operator. | |||
| ERO Metric Sub-TLV as defined in Section 6.1. | ERO Metric Sub-TLV as defined in Section 6.1. | |||
| ERO Sub-TLVs as defined in Section 6.2. | ERO Sub-TLVs as defined in Section 6.2. | |||
| 6.1. ERO Metric Sub-TLV | 6.1. ERO Metric Sub-TLV | |||
| The ERO Metric Sub-TLV is a Sub-TLV of the SID/Label Binding TLV. | The ERO Metric Sub-TLV is a Sub-TLV of the SID/Label Binding TLV. | |||
| The ERO Metric Sub-TLV advertises the cost of an ERO path. It is | The ERO Metric Sub-TLV advertises the cost of an ERO path. It is | |||
| used to compare the cost of a given source/destination path. A | used to compare the cost of a given source/destination path. ERO | |||
| router SHOULD advertise the ERO Metric Sub-TLV in an advertised ERO | Metric Sub-TLV is an option sub-TLV. The cost of the ERO Metric Sub- | |||
| TLV. The cost of the ERO Metric Sub-TLV SHOULD be set to the | TLV SHOULD be set to the cumulative IGP or TE path cost of the | |||
| cumulative IGP or TE path cost of the advertised ERO. Since | advertised ERO. Since manipulation of the Metric field may attract | |||
| manipulation of the Metric field may attract or repel traffic to and | or repel traffic to and from the advertised segment, it MAY be | |||
| from the advertised segment, it MAY be manually overridden. | manually overridden. | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length | | | Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Metric (4 octets) | | | Metric (4 octets) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ERO Metric Sub-TLV format | ERO Metric Sub-TLV format | |||
| skipping to change at page 18, line 33 ¶ | skipping to change at page 18, line 35 ¶ | |||
| 6.2. ERO Sub-TLVs | 6.2. ERO Sub-TLVs | |||
| All ERO information represents an ordered set which describes the | All ERO information represents an ordered set which describes the | |||
| segments of a path. The first ERO Sub-TLV describes the first | segments of a path. The first ERO Sub-TLV describes the first | |||
| segment of a path. Similiarly, the last ERO Sub-TLV describes the | segment of a path. Similiarly, the last ERO Sub-TLV describes the | |||
| segment closest to the egress point. If a router extends or stitches | segment closest to the egress point. If a router extends or stitches | |||
| a path, it MUST prepend the new segment's path information to the ERO | a path, it MUST prepend the new segment's path information to the ERO | |||
| list. This applies equally to advertised backup EROs. | list. This applies equally to advertised backup EROs. | |||
| All ERO Sub-TLVs must immediately follow the SID/Label Sub-TLV. | All ERO sub-TLVs are sub-TLVs of the SID/Label Binding TLV. | |||
| All Backup ERO Sub-TLVs must immediately follow the last ERO Sub-TLV. | ||||
| 6.2.1. IPv4 ERO Sub-TLV | 6.2.1. IPv4 ERO Sub-TLV | |||
| The IPv4 ERO Sub-TLV is a Sub-TLV of the SID/Label Binding Sub-TLV. | The IPv4 ERO Sub-TLV is a Sub-TLV of the SID/Label Binding Sub-TLV. | |||
| The IPv4 ERO Sub-TLV describes a path segment using IPv4 Address | The IPv4 ERO Sub-TLV describes a path segment using IPv4 Address | |||
| style encoding. Its semantics have been borrowed from [RFC3209]. | style encoding. Its semantics have been borrowed from [RFC3209]. | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| skipping to change at page 19, line 37 ¶ | skipping to change at page 19, line 37 ¶ | |||
| |L| | | |L| | | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| where: | where: | |||
| L-bit - If the L-bit is set, then the segment path is | L-bit - If the L-bit is set, then the segment path is | |||
| designated as 'loose'. Otherwise, the segment path is | designated as 'loose'. Otherwise, the segment path is | |||
| designated as 'strict'. The terms 'loose' and 'strict' are | designated as 'strict'. The terms 'loose' and 'strict' are | |||
| defined for RSVP subobjects in [RFC3209]. | defined for RSVP subobjects in [RFC3209]. | |||
| Other bits: Reserved. These MUST be zero when sent and are | ||||
| ignored when received. | ||||
| IPv4 Address - The address of the explicit route hop. | IPv4 Address - The address of the explicit route hop. | |||
| 6.2.2. Unnumbered Interface ID ERO Sub-TLV | 6.2.2. Unnumbered Interface ID ERO Sub-TLV | |||
| The Unnumbered Interface ID ERO Sub-TLV is a Sub-TLV of the SID/Label | The Unnumbered Interface ID ERO Sub-TLV is a Sub-TLV of the SID/Label | |||
| Binding Sub-TLV. | Binding Sub-TLV. | |||
| The appearance and semantics of the 'Unnumbered Interface ID' have | The appearance and semantics of the 'Unnumbered Interface ID' have | |||
| been borrowed from [RFC3477]. | been borrowed from [RFC3477]. | |||
| The Unnumbered Interface-ID ERO Sub-TLV describes a path segment that | The Unnumbered Interface-ID ERO Sub-TLV describes a path segment that | |||
| includes an unnumbered interface. Unnumbered interfaces are | includes an unnumbered interface. Unnumbered interfaces are | |||
| referenced using the interface index. Interface indices are assigned | referenced using the interface index. Interface indices are assigned | |||
| local to the router and therefore are not unique within a domain. | local to the router and therefore are not unique within a domain. | |||
| All elements in an ERO path need to be unique within a domain and | All elements in an ERO path need to be unique within a domain and | |||
| hence need to be disambiguated using a domain unique Router-ID. | hence need to be disambiguated using a domain-unique Router-ID. | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length | | | Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Flags | Reserved | | | Flags | Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Router ID | | | Router ID | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| skipping to change at page 20, line 39 ¶ | skipping to change at page 20, line 42 ¶ | |||
| |L| | | |L| | | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| where: | where: | |||
| L-bit - If the L-bit is set, then the segment path is | L-bit - If the L-bit is set, then the segment path is | |||
| designated as 'loose'. Otherwise, the segment path is | designated as 'loose'. Otherwise, the segment path is | |||
| designated as 'strict'. The terms 'loose' and 'strict' are | designated as 'strict'. The terms 'loose' and 'strict' are | |||
| defined for RSVP subobjects in [RFC3209] | defined for RSVP subobjects in [RFC3209] | |||
| Router-ID: Router-ID of the next-hop. | Other bits: Reserved. These MUST be zero when sent and are | |||
| ignored when received. | ||||
| Router ID: Router ID of the next-hop. | ||||
| Interface ID: The identifier assigned to the link by the router | Interface ID: The identifier assigned to the link by the router | |||
| specified by the Router-ID. | specified by the Router ID. | |||
| 6.2.3. IPv4 Backup ERO Sub-TLV | 6.2.3. IPv4 Backup ERO Sub-TLV | |||
| IPv4 Prefix Backup ERO Sub-TLV is a Sub-TLV of the SID/Label Binding | IPv4 Prefix Backup ERO Sub-TLV is a Sub-TLV of the SID/Label Binding | |||
| Sub-TLV. | Sub-TLV. | |||
| The IPv4 Backup ERO Sub-TLV describes a path segment using IPv4 | The IPv4 Backup ERO Sub-TLV describes a path segment using IPv4 | |||
| Address style of encoding. Its semantics have been borrowed from | Address style of encoding. Its semantics have been borrowed from | |||
| [RFC3209]. | [RFC3209]. | |||
| skipping to change at page 21, line 37 ¶ | skipping to change at page 21, line 46 ¶ | |||
| |L| | | |L| | | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| where: | where: | |||
| L-bit - If the L-bit is set, then the segment path is | L-bit - If the L-bit is set, then the segment path is | |||
| designated as 'loose'. Otherwise, the segment path is | designated as 'loose'. Otherwise, the segment path is | |||
| designated as 'strict'. The terms 'loose' and 'strict' are | designated as 'strict'. The terms 'loose' and 'strict' are | |||
| defined for RSVP subobjects in [RFC3209] | defined for RSVP subobjects in [RFC3209] | |||
| Other bits: Reserved. These MUST be zero when sent and are | ||||
| ignored when received. | ||||
| IPv4 Address - The address of the explicit route hop. | IPv4 Address - The address of the explicit route hop. | |||
| 6.2.4. Unnumbered Interface ID Backup ERO Sub-TLV | 6.2.4. Unnumbered Interface ID Backup ERO Sub-TLV | |||
| The Unnumbered Interface ID Backup ERO Sub-TLV is a Sub-TLV of the | The Unnumbered Interface ID Backup ERO Sub-TLV is a Sub-TLV of the | |||
| SID/Label Binding Sub-TLV. | SID/Label Binding Sub-TLV. | |||
| The appearance and semantics of the 'Unnumbered Interface ID' have | The appearance and semantics of the 'Unnumbered Interface ID' have | |||
| been borrowed from [RFC3477]. | been borrowed from [RFC3477]. | |||
| The Unnumbered Interface-ID Backup ERO Sub-TLV describes a path | The Unnumbered Interface-ID Backup ERO Sub-TLV describes a path | |||
| segment that includes an unnumbered interface. Unnumbered interfaces | segment that includes an unnumbered interface. Unnumbered interfaces | |||
| are referenced using the interface index. Interface indices are | are referenced using the interface index. Interface indices are | |||
| assigned local to the router and are therefore not unique within a | assigned local to the router and are therefore not unique within a | |||
| domain. All elements in an ERO path need to be unique within a | domain. All elements in an ERO path need to be unique within a | |||
| domain and hence need to be disambiguated with specification of the | domain and hence need to be disambiguated with specification of the | |||
| domain unique Router-ID. | domain-unique Router-ID. | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length | | | Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Flags | Reserved | | | Flags | Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Router ID | | | Router ID | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| skipping to change at page 22, line 40 ¶ | skipping to change at page 23, line 5 ¶ | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| |L| | | |L| | | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| where: | where: | |||
| L-bit - If the L-bit is set, then the segment path is | L-bit - If the L-bit is set, then the segment path is | |||
| designated as 'loose'. Otherwise, the segment path is | designated as 'loose'. Otherwise, the segment path is | |||
| designated as 'strict'. | designated as 'strict'. | |||
| Router-ID: Router-ID of the next-hop. | Other bits: Reserved. These MUST be zero when sent and are | |||
| ignored when received. | ||||
| Router ID: Router ID of the next-hop. | ||||
| Interface ID: The identifier assigned to the link by the router | Interface ID: The identifier assigned to the link by the router | |||
| specified by the Router-ID. | specified by the Router ID. | |||
| 7. Adjacency Segment Identifier (Adj-SID) | 7. Adjacency Segment Identifier (Adj-SID) | |||
| An Adjacency Segment Identifier (Adj-SID) represents a router | An Adjacency Segment Identifier (Adj-SID) represents a router | |||
| adjacency in Segment Routing. | adjacency in Segment Routing. | |||
| 7.1. Adj-SID Sub-TLV | 7.1. Adj-SID Sub-TLV | |||
| Adj-SID is an optional Sub-TLV of the Extended Link TLV defined in | Adj-SID is an optional Sub-TLV of the Extended Link TLV defined in | |||
| [RFC7684]. It MAY appear multiple times in the Extended Link TLV. | [RFC7684]. It MAY appear multiple times in the Extended Link TLV. | |||
| skipping to change at page 23, line 40 ¶ | skipping to change at page 24, line 6 ¶ | |||
| Flags: Single octet field containing the following flags: | Flags: Single octet field containing the following flags: | |||
| 0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| |B|V|L|G|P| | | |B|V|L|G|P| | | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| where: | where: | |||
| B-Flag: Backup Flag. If set, the Adj-SID refers to an | B-Flag: Backup Flag. If set, the Adj-SID refers to an | |||
| adjacency that is eligible for protection (e.g.: using IPFRR or | adjacency that is eligible for protection (e.g., using IPFRR or | |||
| MPLS-FRR) as described in section 3.5 of | MPLS-FRR) as described in section 3.5 of | |||
| [I-D.ietf-spring-segment-routing]. | [I-D.ietf-spring-segment-routing]. | |||
| The V-Flag: Value/Index Flag. If set, then the Adj-SID carries | The V-Flag: Value/Index Flag. If set, then the Adj-SID carries | |||
| an absolute value. If not set, then the Adj-SID carries an | an absolute value. If not set, then the Adj-SID carries an | |||
| index. | index. | |||
| The L-Flag: Local/Global Flag. If set, then the value/index | The L-Flag: Local/Global Flag. If set, then the value/index | |||
| carried by the Adj-SID has local significance. If not set, | carried by the Adj-SID has local significance. If not set, | |||
| then the value/index carried by this Sub-TLV has global | then the value/index carried by this Sub-TLV has global | |||
| skipping to change at page 26, line 41 ¶ | skipping to change at page 27, line 5 ¶ | |||
| An OSPFv2 router that supports segment routing MAY advertise Prefix- | An OSPFv2 router that supports segment routing MAY advertise Prefix- | |||
| SIDs for any prefix to which it is advertising reachability (e.g., a | SIDs for any prefix to which it is advertising reachability (e.g., a | |||
| loopback IP address as described in Section 5). | loopback IP address as described in Section 5). | |||
| If multiple routers advertise a Prefix-SID for the same prefix, then | If multiple routers advertise a Prefix-SID for the same prefix, then | |||
| the Prefix-SID MUST be the same. This is required in order to allow | the Prefix-SID MUST be the same. This is required in order to allow | |||
| traffic load-balancing when multiple equal cost paths to the | traffic load-balancing when multiple equal cost paths to the | |||
| destination exist in the OSPFv2 routing domain. | destination exist in the OSPFv2 routing domain. | |||
| Prefix-SID can also be advertised by the SR Mapping Servers (as | A Prefix-SID can also be advertised by the SR Mapping Servers (as | |||
| described in [I-D.filsfils-spring-segment-routing-ldp-interop]). The | described in [I-D.filsfils-spring-segment-routing-ldp-interop]). A | |||
| Mapping Server advertises Prefix-SIDs for remote prefixes that exist | Mapping Server advertises Prefix-SIDs for remote prefixes that exist | |||
| in the OSPFv2 routing domain. Multiple Mapping Servers can advertise | in the OSPFv2 routing domain. Multiple Mapping Servers can advertise | |||
| Prefix-SIDs for the same prefix, in which case the same Prefix-SID | Prefix-SIDs for the same prefix, in which case the same Prefix-SID | |||
| MUST be advertised by all of them. The flooding scope of the OSPF | MUST be advertised by all of them. The flooding scope of the OSPF | |||
| Extended Prefix Opaque LSA that is generated by the SR Mapping Server | Extended Prefix Opaque LSA that is generated by the SR Mapping Server | |||
| could be either area scoped or AS scoped and is determined based on | could be either area scoped or AS scoped and is determined based on | |||
| the configuration of the SR Mapping Server. | the configuration of the SR Mapping Server. | |||
| The SR Mapping Server MUST use OSPF Extended Prefix Range TLV when | An SR Mapping Server MUST use the OSPF Extended Prefix Range TLV when | |||
| advertising SIDs for prefixes. Prefixes of different route-types can | advertising SIDs for prefixes. Prefixes of different route-types can | |||
| be combined in a single OSPF Extended Prefix Range TLV advertised by | be combined in a single OSPF Extended Prefix Range TLV advertised by | |||
| the SR Mapping Server. | an SR Mapping Server. | |||
| Area-scoped OSPF Extended Prefix Range TLV are propagated between | Area-scoped OSPF Extended Prefix Range TLV are propagated between | |||
| areas. Similar to propagation of prefixes between areas, an ABR only | areas. Similar to propagation of prefixes between areas, an ABR only | |||
| propagates the OSPF Extended Prefix Range TLV that it considers to be | propagates the OSPF Extended Prefix Range TLV that it considers to be | |||
| the best from the set it received. The rules used to pick the best | the best from the set it received. The rules used to pick the best | |||
| OSPF Extended Prefix Range TLV are described in Section 4. | OSPF Extended Prefix Range TLV are described in Section 4. | |||
| When propagating an OSPF Extended Prefix Range TLV between areas, | When propagating an OSPF Extended Prefix Range TLV between areas, | |||
| ABRs MUST set the IA-Flag, that is used to prevent redundant flooding | ABRs MUST set the IA-Flag, that is used to prevent redundant flooding | |||
| of the OSPF Extended Prefix Range TLV between areas as described in | of the OSPF Extended Prefix Range TLV between areas as described in | |||
| skipping to change at page 28, line 21 ¶ | skipping to change at page 28, line 33 ¶ | |||
| The ABR will then determine if such router advertised a Prefix-SID | The ABR will then determine if such router advertised a Prefix-SID | |||
| for the prefix and use it when advertising the Prefix-SID to other | for the prefix and use it when advertising the Prefix-SID to other | |||
| connected areas. | connected areas. | |||
| If no Prefix-SID was advertised for the prefix in the backbone | If no Prefix-SID was advertised for the prefix in the backbone | |||
| area by the ABR that contributes to the best path to the prefix, | area by the ABR that contributes to the best path to the prefix, | |||
| the originating ABR will use the Prefix-SID advertised by any | the originating ABR will use the Prefix-SID advertised by any | |||
| other router when propagating the Prefix-SID for the prefix to | other router when propagating the Prefix-SID for the prefix to | |||
| other areas. | other areas. | |||
| 8.3. SID for External Prefixes | 8.3. Segment Routing for External Prefixes | |||
| Type-5 LSAs are flooded domain wide. When an ASBR, which supports | Type-5 LSAs are flooded domain wide. When an ASBR, which supports | |||
| SR, generates Type-5 LSAs, it should also originate Extended Prefix | SR, generates Type-5 LSAs, it should also originate Extended Prefix | |||
| Opaque LSAs, as described in [RFC7684]. The flooding scope of the | Opaque LSAs, as described in [RFC7684]. The flooding scope of the | |||
| Extended Prefix Opaque LSA type is set to AS-scope. The route-type | Extended Prefix Opaque LSA type is set to AS-scope. The route-type | |||
| in the OSPF Extended Prefix TLV is set to external. The Prefix-SID | in the OSPF Extended Prefix TLV is set to external. The Prefix-SID | |||
| Sub-TLV is included in this LSA and the Prefix-SID value will be set | Sub-TLV is included in this LSA and the Prefix-SID value will be set | |||
| to the SID that has been reserved for that prefix. | to the SID that has been reserved for that prefix. | |||
| When an NSSA ABR translates Type-7 LSAs into Type-5 LSAs, it should | When an NSSA ABR translates Type-7 LSAs into Type-5 LSAs, it should | |||
| skipping to change at page 29, line 5 ¶ | skipping to change at page 29, line 17 ¶ | |||
| The Adjacency Segment Routing Identifier (Adj-SID) is advertised | The Adjacency Segment Routing Identifier (Adj-SID) is advertised | |||
| using the Adj-SID Sub-TLV as described in Section 7. | using the Adj-SID Sub-TLV as described in Section 7. | |||
| 8.4.1. Advertisement of Adj-SID on Point-to-Point Links | 8.4.1. Advertisement of Adj-SID on Point-to-Point Links | |||
| An Adj-SID MAY be advertised for any adjacency on a P2P link that is | An Adj-SID MAY be advertised for any adjacency on a P2P link that is | |||
| in neighbor state 2-Way or higher. If the adjacency on a P2P link | in neighbor state 2-Way or higher. If the adjacency on a P2P link | |||
| transitions from the FULL state, then the Adj-SID for that adjacency | transitions from the FULL state, then the Adj-SID for that adjacency | |||
| MAY be removed from the area. If the adjacency transitions to a | MAY be removed from the area. If the adjacency transitions to a | |||
| state lower then 2-Way, then the Adj-SID advertisement MUST be | state lower then 2-Way, then the Adj-SID advertisement MUST be | |||
| removed from the area. | withdrawn from the area. | |||
| 8.4.2. Adjacency SID on Broadcast or NBMA Interfaces | 8.4.2. Adjacency SID on Broadcast or NBMA Interfaces | |||
| Broadcast, NBMA or or hybrid [RFC6845] networks in OSPF are | Broadcast, NBMA, or hybrid [RFC6845] networks in OSPF are represented | |||
| represented by a star topology where the Designated Router (DR) is | by a star topology where the Designated Router (DR) is the central | |||
| the central point to which all other routers on the broadcast, NBMA, | point to which all other routers on the broadcast, NBMA, or hybrid | |||
| or hybrid network connect. As a result, routers on the broadcast, | network connect. As a result, routers on the broadcast, NBMA, or | |||
| NBMA, or hybrid network advertise only their adjacency to the DR. | hybrid network advertise only their adjacency to the DR. Routers | |||
| Routers that do not act as DR do not form or advertise adjacencies | that do not act as DR do not form or advertise adjacencies with each | |||
| with each other. They do, however, maintain 2-Way adjacency state | other. They do, however, maintain 2-Way adjacency state with each | |||
| with each other and are directly reachable. | other and are directly reachable. | |||
| When Segment Routing is used, each router on the broadcast or NBMA | When Segment Routing is used, each router on the broadcast, NBMSA, or | |||
| network MAY advertise the Adj-SID for its adjacency to the DR using | hybrid network MAY advertise the Adj-SID for its adjacency to the DR | |||
| the Adj-SID Sub-TLV as described in Section 7.1. | using the Adj-SID Sub-TLV as described in Section 7.1. | |||
| SR capable routers MAY also advertise an LAN-Adj-SID for other | SR capable routers MAY also advertise a LAN-Adj-SID for other | |||
| neighbors (e.g., BDR, DR-OTHER) on the broadcast, NBMA or hybrid | neighbors (e.g., BDR, DR-OTHER) on the broadcast, NBMA, or hybrid | |||
| network using the LAN-ADJ-SID Sub-TLV as described in Section 7.2. | network using the LAN-ADJ-SID Sub-TLV as described in Section 7.2. | |||
| 9. IANA Considerations | 9. IANA Considerations | |||
| This specification updates several existing OSPF registries. | This specification updates several existing OSPF registries. | |||
| 9.1. OSPF OSPF Router Information (RI) TLVs Registry | 9.1. OSPF OSPF Router Information (RI) TLVs Registry | |||
| o 8 (IANA Preallocated) - SR-Algorithm TLV | o 8 (IANA Preallocated) - SR-Algorithm TLV | |||
| skipping to change at page 30, line 33 ¶ | skipping to change at page 30, line 46 ¶ | |||
| o 2 - Adj-SID Sub-TLV | o 2 - Adj-SID Sub-TLV | |||
| o 3 - LAN Adj-SID/Label Sub-TLV | o 3 - LAN Adj-SID/Label Sub-TLV | |||
| 10. Implementation Status | 10. Implementation Status | |||
| An implementation survey with seven questions related to the | An implementation survey with seven questions related to the | |||
| implementer's support of OSPFv2 Segment Routing was sent to the OSPF | implementer's support of OSPFv2 Segment Routing was sent to the OSPF | |||
| WG list and several known implementers. This section contains | WG list and several known implementers. This section contains | |||
| responses from two implementers who completed the survey. No | responses from three implementers who completed the survey. No | |||
| external means were used to verify the accuracy of the information | external means were used to verify the accuracy of the information | |||
| submitted by the respondents. The respondents are considered experts | submitted by the respondents. The respondents are considered experts | |||
| on the products they reported on. Additionally, responses were | on the products they reported on. Additionally, responses were | |||
| omitted from implementers who indicated that they have not | omitted from implementers who indicated that they have not | |||
| implemented the function yet. | implemented the function yet. | |||
| Responses from Nokia (former Alcatel-Lucent): | Responses from Nokia (former Alcatel-Lucent): | |||
| Link to a web page describing the implementation: | Link to a web page describing the implementation: | |||
| https://infoproducts.alcatel-lucent.com/cgi-bin/dbaccessfilename.cgi/ | https://infoproducts.alcatel-lucent.com/cgi-bin/dbaccessfilename.cgi/ | |||
| End of changes. 66 change blocks. | ||||
| 128 lines changed or deleted | 144 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||