| < draft-ietf-ospf-ospfv3-segment-routing-extensions-10.txt | draft-ietf-ospf-ospfv3-segment-routing-extensions-11.txt > | |||
|---|---|---|---|---|
| Open Shortest Path First IGP P. Psenak, Ed. | Open Shortest Path First IGP P. Psenak, Ed. | |||
| Internet-Draft S. Previdi, Ed. | Internet-Draft C. Filsfils | |||
| Intended status: Standards Track C. Filsfils | Intended status: Standards Track Cisco Systems, Inc. | |||
| Expires: March 9, 2018 Cisco Systems, Inc. | Expires: July 30, 2018 S. Previdi, Ed. | |||
| Individual | ||||
| 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 | Nuage Networks | |||
| September 5, 2017 | January 26, 2018 | |||
| OSPFv3 Extensions for Segment Routing | OSPFv3 Extensions for Segment Routing | |||
| draft-ietf-ospf-ospfv3-segment-routing-extensions-10 | draft-ietf-ospf-ospfv3-segment-routing-extensions-11 | |||
| Abstract | Abstract | |||
| Segment Routing (SR) allows for a flexible definition of end-to-end | Segment Routing (SR) allows a flexible definition of end-to-end paths | |||
| paths within IGP topologies by encoding paths as sequences of | within IGP topologies by encoding paths as sequences of topological | |||
| topological sub-paths, called "segments". These segments are | sub-paths, called "segments". These segments are advertised by the | |||
| advertised by the link-state routing protocols (IS-IS and OSPF). | link-state routing protocols (IS-IS and OSPF). | |||
| This draft describes the OSPFv3 extensions that are required for | This draft describes the OSPFv3 extensions required for Segment | |||
| Segment Routing. | Routing. | |||
| Requirements Language | Requirements Language | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| document are to be interpreted as described in RFC 2119 [RFC2119]. | document are to be interpreted as described in [RFC2119]. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| 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 https://datatracker.ietf.org/drafts/current/. | Drafts is at https://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 March 9, 2018. | ||||
| This Internet-Draft will expire on July 30, 2018. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2018 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 | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://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 | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Segment Routing Identifiers . . . . . . . . . . . . . . . . . 3 | 2. Segment Routing Identifiers . . . . . . . . . . . . . . . . . 3 | |||
| 2.1. SID/Label Sub-TLV . . . . . . . . . . . . . . . . . . . . 3 | 2.1. SID/Label Sub-TLV . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3. Segment Routing Capabilities . . . . . . . . . . . . . . . . 4 | 3. Segment Routing Capabilities . . . . . . . . . . . . . . . . 4 | |||
| 3.1. SR-Algorithm TLV . . . . . . . . . . . . . . . . . . . . 4 | 3.1. SR-Algorithm TLV . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3.2. SID/Label Range TLV . . . . . . . . . . . . . . . . . . . 6 | 3.2. SID/Label Range TLV . . . . . . . . . . . . . . . . . . . 6 | |||
| 3.3. SR Local Block Sub-TLV . . . . . . . . . . . . . . . . . 7 | 3.3. SR Local Block TLV . . . . . . . . . . . . . . . . . . . 8 | |||
| 3.4. SRMS Preference Sub-TLV . . . . . . . . . . . . . . . . . 9 | 3.4. SRMS Preference TLV . . . . . . . . . . . . . . . . . . . 10 | |||
| 3.5. SR-Forwarding Capabilities . . . . . . . . . . . . . . . 10 | 4. OSPFv3 Extended Prefix Range TLV . . . . . . . . . . . . . . 11 | |||
| 4. OSPFv3 Extended Prefix Range TLV . . . . . . . . . . . . . . 10 | 5. Prefix SID Sub-TLV . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 5. Prefix SID Sub-TLV . . . . . . . . . . . . . . . . . . . . . 12 | 6. Adjacency Segment Identifier (Adj-SID) . . . . . . . . . . . 17 | |||
| 6. SID/Label Binding Sub-TLV . . . . . . . . . . . . . . . . . . 16 | 6.1. Adj-SID Sub-TLV . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 6.1. ERO Metric Sub-TLV . . . . . . . . . . . . . . . . . . . 18 | 6.2. LAN Adj-SID Sub-TLV . . . . . . . . . . . . . . . . . . . 19 | |||
| 6.2. ERO Sub-TLVs . . . . . . . . . . . . . . . . . . . . . . 19 | 7. Elements of Procedure . . . . . . . . . . . . . . . . . . . . 20 | |||
| 6.2.1. IPv4 ERO Sub-TLV . . . . . . . . . . . . . . . . . . 19 | 7.1. Intra-area Segment routing in OSPFv3 . . . . . . . . . . 20 | |||
| 6.2.2. IPv6 ERO Sub-TLV . . . . . . . . . . . . . . . . . . 20 | 7.2. Inter-area Segment routing in OSPFv3 . . . . . . . . . . 22 | |||
| 6.2.3. Unnumbered Interface ID ERO Sub-TLV . . . . . . . . . 21 | 7.3. Segment Routing for External Prefixes . . . . . . . . . . 23 | |||
| 6.2.4. IPv4 Backup ERO Sub-TLV . . . . . . . . . . . . . . . 22 | 7.4. Advertisement of Adj-SID . . . . . . . . . . . . . . . . 23 | |||
| 6.2.5. IPv6 Backup ERO Sub-TLV . . . . . . . . . . . . . . . 23 | 7.4.1. Advertisement of Adj-SID on Point-to-Point Links . . 23 | |||
| 6.2.6. Unnumbered Interface ID Backup ERO Sub-TLV . . . . . 24 | 7.4.2. Adjacency SID on Broadcast or NBMA Interfaces . . . . 23 | |||
| 7. Adjacency Segment Identifier (Adj-SID) . . . . . . . . . . . 25 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 24 | |||
| 7.1. Adj-SID Sub-TLV . . . . . . . . . . . . . . . . . . . . . 25 | 8.1. OSPFv3 Extend-LSA TLV Registry . . . . . . . . . . . . . 24 | |||
| 7.2. LAN Adj-SID Sub-TLV . . . . . . . . . . . . . . . . . . . 27 | 8.2. OSPFv3 Extend-LSA Sub-TLV registry . . . . . . . . . . . 24 | |||
| 8. Elements of Procedure . . . . . . . . . . . . . . . . . . . . 29 | 9. Security Considerations . . . . . . . . . . . . . . . . . . . 24 | |||
| 8.1. Intra-area Segment routing in OSPFv3 . . . . . . . . . . 29 | 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
| 8.2. Inter-area Segment routing in OSPFv3 . . . . . . . . . . 30 | 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 25 | |||
| 8.3. SID for External Prefixes . . . . . . . . . . . . . . . . 31 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
| 8.4. Advertisement of Adj-SID . . . . . . . . . . . . . . . . 32 | 12.1. Normative References . . . . . . . . . . . . . . . . . . 25 | |||
| 8.4.1. Advertisement of Adj-SID on Point-to-Point Links . . 32 | 12.2. Informative References . . . . . . . . . . . . . . . . . 26 | |||
| 8.4.2. Adjacency SID on Broadcast or NBMA Interfaces . . . . 32 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 27 | |||
| 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 32 | ||||
| 9.1. OSPF Router Information (RI) TLVs Registry . . . . . . . 32 | ||||
| 9.2. OSPFv3 Extend-LSA TLV Registry . . . . . . . . . . . . . 33 | ||||
| 9.3. OSPFv3 Extend-LSA Sub-TLV registry . . . . . . . . . . . 33 | ||||
| 10. Security Considerations . . . . . . . . . . . . . . . . . . . 33 | ||||
| 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 33 | ||||
| 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 34 | ||||
| 12.1. Normative References . . . . . . . . . . . . . . . . . . 34 | ||||
| 12.2. Informative References . . . . . . . . . . . . . . . . . 34 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 35 | ||||
| 1. Introduction | 1. Introduction | |||
| Segment Routing (SR) allows for a flexible definition of end-to-end | Segment Routing (SR) allows a flexible definition of end-to-end paths | |||
| paths within IGP topologies by encoding paths as sequences of | within IGP topologies by encoding paths as sequences of topological | |||
| topological sub-paths, called "segments". These segments are | sub-paths, called "segments". These segments are advertised by the | |||
| advertised by the link-state routing protocols (IS-IS and OSPF). | link-state routing protocols (IS-IS and OSPF). Prefix segments | |||
| Prefix segments represent an ecmp-aware shortest-path to a prefix (or | represent an ECMP-aware shortest-path to a prefix (or a node), as per | |||
| a node), as per the state of the IGP topology. Adjacency segments | the state of the IGP topology. Adjacency segments represent a hop | |||
| represent a hop over a specific adjacency between two nodes in the | over a specific adjacency between two nodes in the IGP. A prefix | |||
| IGP. A prefix segment is typically a multi-hop path while an | segment is typically a multi-hop path while an adjacency segment, in | |||
| adjacency segment, in most of the cases, is a one-hop path. SR's | most cases, is a one-hop path. SR's control-plane can be applied to | |||
| control-plane can be applied to both IPv6 and MPLS data-planes, and | both IPv6 and MPLS data-planes, and does not require any additional | |||
| does not require any additional signaling (other than the regular | signalling (other than IGP extensions). The IPv6 data plane is out | |||
| IGP). For example, when used in MPLS networks, SR paths do not | of the scope of this specification - OSPFv3 extension for SR with | |||
| require any LDP or RSVP-TE signaling. Still, SR can interoperate in | IPv6 data plane will be specified in a separate document. When used | |||
| the presence of LSPs established with RSVP or LDP. | in MPLS networks, SR paths do not require any LDP or RSVP-TE | |||
| signalling. However, SR can interoperate in the presence of LSPs | ||||
| established with RSVP or LDP. | ||||
| This draft describes the OSPFv3 extensions required for segment | There are additional segment types, e.g., Binding SID defined in | |||
| routing. | [I-D.ietf-spring-segment-routing]. | |||
| This draft describes the OSPFv3 extensions required for Segment | ||||
| Routing with MPLS data plane. | ||||
| 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 [RFC7855]. | |||
| [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. | |||
| 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 Sub-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 3 | Type: 7 | |||
| Length: variable, 3 or 4 bytes | Length: Variable, 3 or 4 octets | |||
| 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 the SID/Label Sub-TLV if the | The receiving router MUST ignore the SID/Label Sub-TLV if the | |||
| length 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 capabilities of the router | Segment Routing requires some additional router capabilities to be | |||
| to be advertised to other routers in the area. | advertised to other routers in the area. | |||
| These SR capabilities are advertised in OSPFv3 Router Information LSA | These SR capabilities are advertised in the OSPFv3 Router Information | |||
| (defined in [RFC4970]). | Opaque LSA (defined in [RFC7770]). | |||
| 3.1. SR-Algorithm TLV | 3.1. SR-Algorithm TLV | |||
| The SR-Algorithm TLV is a TLV of the OSPFv3 Router Information LSA | The SR-Algorithm TLV is a top-level TLV of the OSPFv3 Router | |||
| (defined in [RFC4970]). | Information Opaque LSA (defined in [RFC7770]). | |||
| The SR-Algorithm TLV is optional. It MAY only be advertised once in | The SR-Algorithm TLV is optional. It SHOULD only be advertised once | |||
| the OSPFv3 Router Information LSA. If the SID/Label Range TLV, as | in the OSPFv3 Router Information Opaque LSA. If the SR-Algorithm TLV | |||
| defined in Section 3.2, is advertised, then the SR-Algorithm TLV MUST | is not advertised by the node, such node is considered as not being | |||
| also be advertised. If the SR-Algorithm TLV is not advertised by the | segment routing capable. | |||
| node, such node is considered as not being segment routing capable. | ||||
| An OSPFv3 router may use various algorithms when calculating | An SR router can use various algorithms when calculating reachability | |||
| reachability to other nodes in area or to prefixes attached to these | to OSPFv3 routers or prefixes in an OSPFv3 area. Examples of these | |||
| nodes. Examples of these algorithms are metric based Shortest Path | algorithms are metric based Shortest Path First (SPF), various | |||
| First (SPF), various sorts of Constrained SPF, etc. The SR-Algorithm | flavors of Constrained SPF, etc. The SR-Algorithm TLV allows a | |||
| TLV allows a router to advertise the algorithms that the router is | router to advertise the algorithms currently used by the router to | |||
| currently using to other routers in an area. The SR-Algorithm TLV | other routers in an OSPFv3 area. The SR-Algorithm TLV has following | |||
| has following structure: | 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 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Algorithm 1 | Algorithm... | Algorithm n | | | | Algorithm 1 | Algorithm... | Algorithm n | | | |||
| +- -+ | +- -+ | |||
| | | | | | | |||
| + + | + + | |||
| where: | where: | |||
| Type: TBD, suggested value 8 | Type: 8 | |||
| Length: variable | Length: Variable, in octets, dependent on number of algorithms | |||
| advertised. | ||||
| Algorithm: Single octet identifying the algorithm. The following | Algorithm: Single octet identifying the algorithm. The following | |||
| value has been defined: | 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- | OSPFv3 protocol. Consistent with the deployed practice for | |||
| state protocols, Algorithm 0 permits any node to overwrite the | link-state protocols, Algorithm 0 permits any node to overwrite | |||
| SPF path with a different path based on its local policy. If | the SPF path with a different path based on its local policy. | |||
| the SR-Algorithm Sub-TLV is advertised, Algorithm 0 MUST be | If 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 | |||
| the support of Algorithm 1 MUST NOT alter the forwarding | support for Algorithm 1 MUST NOT alter the SPF paths computed | |||
| decision 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 MUST use the first occurrence of the TLV in the OSPFV3 | |||
| OSPFv3 Router Information LSA. If the SR-Algorithm sub-TLV appears | Router Information Opaque LSA. If the SR-Algorithm TLV appears in | |||
| in multiple OSPFv3 Router Information LSAs that have different | multiple OSPFv3 Router Information Opaque LSAs that have different | |||
| flooding scopes, the SR-Algorithm sub-TLV in the OSPFv3 Router | flooding scopes, the SR-Algorithm TLV in the OSPFv3 Router | |||
| Information LSA with the lowest flooding scope SHOULD be used. If | Information Opaque LSA with the area-scoped flooding scope MUST be | |||
| the SR-Algorithm sub-TLV appears in multiple OSPFv3 Router | used. If the SR-Algorithm TLV appears in multiple OSPFv3 Router | |||
| Information LSAs that have the same flooding scope, the SR-Algorithm | Information Opaque LSAs that have the same flooding scope, the SR- | |||
| sub-TLV in the OSPFv3 Router Information LSA with the numerically | Algorithm TLV in the OSPFv3 Router Information Opaque LSA with the | |||
| smallest Instance ID SHOULD be used and subsequent instances of the | numerically smallest Instance ID MUST be used and subsequent | |||
| SR-Algorithm sub-TLV SHOULD be ignored. | instances of the SR-Algorithm TLV MUST be ignored. | |||
| The RI LSA can be advertised at any of the defined flooding scopes | The OSPFv3 Router Information Opaque LSA can be advertised at any of | |||
| (link, area, or autonomous system (AS)). For the purpose of the SR- | the defined opaque flooding scopes (link, area, or Autonomous System | |||
| Algorithm TLV propagation, area scope flooding is required. | (AS)). For the purpose of SR-Algorithm TLV advertisement, area- | |||
| scoped flooding is REQUIRED. | ||||
| 3.2. SID/Label Range TLV | 3.2. SID/Label Range TLV | |||
| The SID/Label Range TLV is a TLV of the OSPFv3 Router Information LSA | Prefix SIDs MAY be advertised in a form of an index as described in | |||
| (defined in [RFC4970]). | Section 5. Such index defines the offset in the SID/Label space | |||
| advertised by the router. The SID/Label Range TLV is used to | ||||
| advertise such SID/Label space. | ||||
| The SID/Label Sub-TLV MAY appear multiple times and has following | The SID/Label Range TLV is a top-level TLV of the OSPFv3 Router | |||
| format: | Information Opaque LSA (defined in [RFC7770]). | |||
| The SID/Label Range TLV MAY appear multiple times 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length | | | Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Range Size | Reserved | | | Range Size | Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Sub-TLVs (variable) | | | Sub-TLVs (variable) | | |||
| +- -+ | +- -+ | |||
| | | | | | | |||
| + + | + + | |||
| where: | where: | |||
| Type: TBD, suggested value 9 | Type: 9 | |||
| Length: variable | Length: Variable, in octets, dependent on Sub-TLVs. | |||
| Range Size: 3 octets of 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 | Reserved: SHOULD be set to 0 on transmission and MUST be ignored | |||
| in Section 2.1. The SID/Label advertised in the SID/Label TLV | on reception. | |||
| represents the first SID/Label in the advertised range. | ||||
| Multiple occurrence of the SID/Label Range TLV MAY be advertised, in | Initially, the only supported Sub-TLV is the SID/Label Sub-TLV as | |||
| defined in Section 2.1. The SID/Label Sub-TLV MUST be included in | ||||
| the SID/Label Range TLV. The SID/Label advertised in the SID/Label | ||||
| Sub-TLV represents the first SID/Label in the advertised range. | ||||
| Only a single SID/Label Sub-TLV MAY be advertised in SID/Label Range | ||||
| TLV. If more then one SID/Label Sub-TLVs are present, the SID/Label | ||||
| Range TLV MUST be ignored. | ||||
| 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 in the OSPFv3 Router Information | Label Range TLVs are advertised inside the Router Information | |||
| LSA. The originating router MUST ensure the order is same after a | Opaque LSA. The originating router MUST ensure the order is the | |||
| graceful restart (using checkpointing, non-volatile storage or any | same after a graceful restart (using checkpointing, non-volatile | |||
| other mechanism) in order to assure the SID/label range and SID | storage, or any other mechanism) in order to assure the SID/label | |||
| index correspondence is preserved across graceful restarts. | range and SID index correspondence is preserved across graceful | |||
| 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 the SID index. | are advertised when calculating a SID/label from a SID index. | |||
| o A router not supporting multiple occurrences of the SID/Label | o The originating router MUST NOT advertise overlapping ranges. | |||
| Range TLV MUST use first advertised SID/Label Range TLV. | ||||
| o When a router receives multiple overlapping ranges, it MUST | ||||
| conform to the procedures defined in | ||||
| [I-D.ietf-spring-conflict-resolution]. | ||||
| The following example illustrates the advertisement of multiple | The following example illustrates the advertisement of multiple | |||
| ranges: | ranges: | |||
| The originating router advertises the following ranges: | The originating router advertises the following ranges: | |||
| Range 1: [100, 199] | ||||
| Range 2: [1000, 1099] | ||||
| Range 3: [500, 599] | ||||
| The receiving routers concatenate the ranges and build the Segment Routing Global Block | Range 1: Range Size: 100 SID/Label Sub-TLV: 100 | |||
| (SRGB) is as follows: | Range 1: Range Size: 100 SID/Label Sub-TLV: 1000 | |||
| Range 1: Range Size: 100 SID/Label Sub-TLV: 500 | ||||
| SRGB = [100, 199] | The receiving routers concatenate the ranges and build the Segment | |||
| [1000, 1099] | Routing Global Block (SRGB) as follows: | |||
| [500, 599] | ||||
| The indexes span multiple ranges: | SRGB = [100, 199] | |||
| [1000, 1099] | ||||
| [500, 599] | ||||
| index=0 means label 100 | The indexes span multiple ranges: | |||
| ... | ||||
| index 99 means label 199 | ||||
| index 100 means label 1000 | ||||
| index 199 means label 1099 | ||||
| ... | ||||
| index 200 means label 500 | ||||
| ... | ||||
| The RI LSA can be advertised at any of the defined flooding scopes | index=0 means label 100 | |||
| (link, area, or autonomous system (AS)). For the purpose of the SID/ | ... | |||
| Label Range TLV propagation, area scope flooding is required. | index 99 means label 199 | |||
| index 100 means label 1000 | ||||
| index 199 means label 1099 | ||||
| ... | ||||
| index 200 means label 500 | ||||
| ... | ||||
| 3.3. SR Local Block Sub-TLV | The OSPFv3 Router Information Opaque LSA can be advertised at any of | |||
| the defined flooding scopes (link, area, or autonomous system (AS)). | ||||
| For the purpose of SID/Label Range TLV advertisement, area-scoped | ||||
| flooding is REQUIRED. | ||||
| The SR Local Block (SRLB) Sub-TLV contains the range of labels the | 3.3. SR Local Block TLV | |||
| node has reserved for local SIDs. Local SIDs are used, e.g., for | ||||
| Adjacency-SIDs, and may also be allocated by other components than | ||||
| OSPF protocol. As an example, an application or a controller may | ||||
| instruct the router to allocate a specific local SID. Therefore, in | ||||
| order for such applications or controllers to know what are the local | ||||
| SIDs available in the router, it is required that the router | ||||
| 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 OSPFv3 | The SR Local Block TLV (SRLB TLV) contains the range of labels the | |||
| Router Information Opaque LSA (defined in [RFC7770]). | node has reserved for local SIDs. SIDs from the SRLB MAY be used for | |||
| Adjacency-SIDs, but also by components other than the OSPFv3 | ||||
| protocol. As an example, an application or a controller can instruct | ||||
| the router to allocate a specific local SID. Some controllers or | ||||
| applications can use the control plane to discover the available set | ||||
| of local SIDs on a particular router. In such cases, the SRLB is | ||||
| advertised in the control plane. The requirement to advertise the | ||||
| SRLB is further described in [I-D.ietf-spring-segment-routing-mpls]. | ||||
| The SRLB TLV is used to advertise the SRLB. | ||||
| The SR Local Block Sub-TLV MAY appear multiple times in the OSPFv3 | The SRLB TLV is a top-level TLV of the OSPFv3 Router Information | |||
| Router Information Opaque LSA and has the following format: | Opaque LSA (defined in [RFC7770]). | |||
| The SRLB TLV MAY appear multiple times in the OSPFv3 Router | ||||
| 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length | | | Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Range Size | Reserved | | | Range Size | Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Sub-TLVs (variable) | | | Sub-TLVs (variable) | | |||
| +- -+ | +- -+ | |||
| | | | | | | |||
| + + | + + | |||
| where: | where: | |||
| Type: TBD, suggested value 12 | Type: 14 | |||
| Length: variable | Length: Variable, in octets, dependent on Sub-TLVs. | |||
| 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 | Reserved: SHOULD be set to 0 on transmission and MUST be ignored | |||
| in Section 2.1. The SID/Label advertised in the SID/Label TLV | on reception. | |||
| Initially, the only supported Sub-TLV is the SID/Label Sub-TLV as | ||||
| defined in Section 2.1. The SID/Label Sub-TLV MUST be included in | ||||
| the SRLB TLV. The SID/Label advertised in the SID/Label Sub-TLV | ||||
| represents the first SID/Label in the advertised range. | represents the first SID/Label in the advertised range. | |||
| When multiple SRLB sub-TLVs are received from a given router the | Only a single SID/Label Sub-TLV MAY be advertised in the SRLB TLV. | |||
| behavior of the receiving system is undefined. | If more then one SID/Label Sub-TLVs are present, the SRLB TLV MUST be | |||
| ignored. | ||||
| 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 OSPFv3, the reporting of local SIDs is done | Within the context of OSPFv3, the reporting of local SIDs is done | |||
| through OSPF Sub-TLVs such as the Adjacency-SID (Section 7). | through OSPFv3 Sub-TLVs such as the Adjacency-SID (Section 6). | |||
| However, the reporting of allocated local SIDs may also be done | However, the reporting of allocated local SIDs can 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 TLV. 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 OSPFv3 RI LSA can be advertised at any of the defined flooding | The OSPFv3 Router Information Opaque LSA can be advertised at any of | |||
| scopes (link, area, or autonomous system (AS)). For the purpose of | the defined flooding scopes (link, area, or autonomous system (AS)). | |||
| SR Local Block Sub-TLV TLV advertisement, area scope flooding is | For the purpose of SRLB TLV advertisement, area-scoped flooding is | |||
| required. | REQUIRED. | |||
| 3.4. SRMS Preference Sub-TLV | 3.4. SRMS Preference TLV | |||
| The Segment Routing Mapping Server (SRMS) Preference sub-TLV is used | The Segment Routing Mapping Server Preference TLV (SRMS Preference | |||
| to advertise a preference associated with the node that acts as a SR | TLV) is used to advertise a preference associated with the node that | |||
| Mapping Server. SRMS preference is defined in | acts as an SR Mapping Server. The role of an SRMS is described in | |||
| [I-D.ietf-spring-conflict-resolution]. | [I-D.ietf-spring-segment-routing-ldp-interop]. SRMS preference is | |||
| defined in [I-D.ietf-spring-conflict-resolution]. | ||||
| The SRMS Preference Sub-TLV is a top-level TLV of the OSPFv3 Router | The SRMS Preference TLV is a top-level TLV of the OSPFv3 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 OSPFv3 | The SRMS Preference TLV MAY only be advertised once in the OSPFv3 | |||
| Router Information Opaque LSA and has the following format: | Router 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length | | | Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Preference | Reserved | | | Preference | Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| where: | where: | |||
| Type: TBD, suggested value 13 | Type: 15 | |||
| 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 | Reserved: SHOULD be set to 0 on transmission and MUST be ignored | |||
| router the receiver SHOULD use the first occurrence of the sub-TLV in | on reception. | |||
| the OSPFv3 Router Information LSA. If the SRMS Preference sub-TLV | ||||
| appears in multiple OSPFv3 Router Information LSAs that have | ||||
| different flooding scopes, the SRLB sub-TLV in the OSPFv3 Router | ||||
| Information LSA with the lowest flooding scope SHOULD be used. If | ||||
| the SRMS Preference sub-TLV appears in multiple OSPFv3 Router | ||||
| Information LSAs that have the same flooding scope, the SRMS | ||||
| Preference sub-TLV in the OSPFv3 Router Information LSA with the | ||||
| numerically smallest Instance ID SHOULD be used and subsequent | ||||
| instances of the SRMS Preference sub-TLV SHOULD be ignored. | ||||
| The OSPFv3 RI LSA can be advertised at any of the defined flooding | ||||
| scopes (link, area, or autonomous system (AS)). For the purpose of | ||||
| the SRMS Preference Sub-TLV advertisement, AS scope flooding is | ||||
| required. If 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 used. | ||||
| 3.5. SR-Forwarding Capabilities | ||||
| OSPFv3 router supporting Segment Routing needs to advertise its SR | ||||
| data-plane capabilities. Data-plane capabilities are advertised in | ||||
| OSPF Router Informational Capabilities TLV, which is defined in | ||||
| section 2.3 of RFC 4970 [RFC4970]. | ||||
| Two new bits are allocated in the OSPF Router Informational | ||||
| Capability Bits as follows: | ||||
| Bit-6 - MPLS IPv6 flag. If set, then the router is capable of | ||||
| processing SR MPLS encapsulated IPv6 packets on all interfaces. | ||||
| Bit-7 - If set, then the router is capable of processing the IPv6 | When multiple SRMS Preference TLVs are received from a given router, | |||
| Segment Routing Header on all interfaces as defined in | the receiver MUST use the first occurrence of the TLV in the OSPFv3 | |||
| [I-D.previdi-6man-segment-routing-header]. | Router Information Opaque LSA. If the SRMS Preference TLV appears in | |||
| multiple OSPFv3 Router Information Opaque LSAs that have different | ||||
| flooding scopes, the SRMS Preference TLV in the OSPFv3 Router | ||||
| Information Opaque LSA with the narrowest flooding scope MUST be | ||||
| used. If the SRMS Preference TLV appears in multiple OSPFv3 Router | ||||
| Information Opaque LSAs that have the same flooding scope, the SRMS | ||||
| Preference TLV in the OSPFv3 Router Information Opaque LSA with the | ||||
| numerically smallest Instance ID MUST be used and subsequent | ||||
| instances of the SRMS Preference TLV MUST be ignored. | ||||
| For the purpose of the SR-Forwarding Capabilities propagation, area | The OSPFv3 Router Information Opaque LSA can be advertised at any of | |||
| scope flooding is required. | the defined flooding scopes (link, area, or autonomous system (AS)). | |||
| For the purpose of the SRMS Preference TLV advertisement, AS-scoped | ||||
| flooding SHOULD be used. This is because SRMS servers can be located | ||||
| in a different area then consumers of the SRMS advertisements. If | ||||
| the SRMS advertisements from the SRMS server are only used inside the | ||||
| SRMS server's area, area-scoped flooding MAY be used. | ||||
| 4. OSPFv3 Extended Prefix Range TLV | 4. OSPFv3 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. 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.ietf-spring-segment-routing-ldp-interop], is an example where we | |||
| where we need a single advertisement to advertise SIDs for multiple | need a single advertisement to advertise SIDs for multiple prefixes | |||
| prefixes from a contiguous address range. The OSPFv3 Extended Prefix | from a contiguous address range. | |||
| Range TLV is defined for this purpose. | ||||
| The OSPFv3 Extended Prefix Range TLV is a new top level TLV of the | The OSPFv3 Extended Prefix Range TLV, is defined for this purpose. | |||
| The OSPFv3 Extended Prefix Range TLV is a top level TLV of the | ||||
| following LSAs defined in [I-D.ietf-ospf-ospfv3-lsa-extend]: | following LSAs defined in [I-D.ietf-ospf-ospfv3-lsa-extend]: | |||
| E-Intra-Area-Prefix-LSA | E-Intra-Area-Prefix-LSA | |||
| E-Inter-Area-Prefix-LSA | E-Inter-Area-Prefix-LSA | |||
| E-AS-External-LSA | E-AS-External-LSA | |||
| E-Type-7-LSA | E-Type-7-LSA | |||
| Multiple OSPFv3 Extended Prefix Range TLVs MAY be advertised in these | Multiple OSPFv3 Extended Prefix Range TLVs MAY be advertised in each | |||
| extended LSAs. The OSPFv3 Extended Prefix Range TLV has the | LSA mentioned above. The OSPFv3 Extended Prefix Range TLV has the | |||
| 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 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Prefix Length | AF | Range Size | | | Prefix Length | AF | Range Size | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Flags | Reserved | | | Flags | Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Address Prefix (variable) | | | Address Prefix (variable) | | |||
| | ... | | | ... | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Sub-TLVs (variable) | | | Sub-TLVs (variable) | | |||
| +- -+ | +- -+ | |||
| | | | | | | |||
| where: | where: | |||
| Type: TBD, suggested value 9. | Type: 9 | |||
| Length: variable | Length: Variable, in octets, dependent on Sub-TLVs. | |||
| Prefix length: length of the prefix | Prefix length: Length of prefix in bits. | |||
| AF: 0 - IPv6 unicast | AF: Address family for the prefix. | |||
| Range size: represents the number of prefixes that are covered by | AF: 0 - IPv4 unicast | |||
| AF: 1 - IPv6 unicast | ||||
| 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 addresses from other than the IPv6 unicast address | including: | |||
| class. | ||||
| Flags: 1 octet field. The following flags are defined: | IPv4 multicast address range (224.0.0.0/3), if the AF is IPv4 | |||
| unicast | ||||
| addresses from other than the IPv6 unicast address class, if | ||||
| the AF is IPv6 unicast | ||||
| 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. ABR that is advertising the OSPF Extended Prefix | area type. An ABR that is advertising the OSPFv3 Extended | |||
| Range TLV between areas MUST set this bit. | Prefix 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 advertisement | An ABR only propagates an inter-area Prefix Range | |||
| over inter-area one. | advertisement from the backbone area to connected non- | |||
| backbone areas if the advertisement is considered to be the | ||||
| best one. The following rules are used to select the best | ||||
| range from the set of advertisements for the same Prefix | ||||
| Range: | ||||
| An ABR does not consider inter-area Prefix Range | An ABR always prefers intra-area Prefix Range | |||
| advertisements coming from non backbone area. | advertisements over inter-area advertisements. | |||
| An ABR propagates inter-area Prefix Range advertisement from | An ABR does not consider inter-area Prefix Range | |||
| backbone area to connected non backbone areas only if such | advertisements coming from non-backbone areas. | |||
| advertisement is considered to be the best one. | ||||
| Address Prefix: the prefix, encoded as an even multiple of 32-bit | Reserved: SHOULD be set to 0 on transmission and MUST be ignored | |||
| words, padded with zeroed bits as necessary. This encoding | on reception. | |||
| consumes ((PrefixLength + 31) / 32) 32-bit words. The Address | ||||
| Prefix represents the first prefix in the prefix range. | Address Prefix: | |||
| For the address family IPv4 unicast, the prefix itself is | ||||
| encoded as a 32-bit value. The default route is represented by | ||||
| a prefix of length 0. | ||||
| For the address family IPv6 unicast, the prefix, encoded as an | ||||
| even multiple of 32-bit words, padded with zeroed bits as | ||||
| necessary. This encoding consumes ((PrefixLength + 31) / 32) | ||||
| 32-bit words. | ||||
| Prefix encoding for other address families is beyond the scope | ||||
| of this specification. | ||||
| 5. Prefix SID Sub-TLV | 5. Prefix SID Sub-TLV | |||
| The Prefix SID Sub-TLV is a Sub-TLV of the following OSPFv3 TLVs as | The Prefix SID Sub-TLV is a Sub-TLV of the following OSPFv3 TLVs as | |||
| defined in [I-D.ietf-ospf-ospfv3-lsa-extend] and in Section 4: | defined in [I-D.ietf-ospf-ospfv3-lsa-extend] and in Section 4: | |||
| Intra-Area Prefix TLV | Intra-Area Prefix TLV | |||
| Inter-Area Prefix TLV | Inter-Area Prefix TLV | |||
| skipping to change at page 13, line 14 ¶ | skipping to change at page 14, line 30 ¶ | |||
| 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 | Algorithm | Reserved | | | Flags | Algorithm | Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | SID/Index/Label (variable) | | | SID/Index/Label (variable) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| where: | where: | |||
| Type: TBD, suggested value 4. | Type: 4 | |||
| Length: variable | Length: 7 or 8 octets, dependent on the V-flag | |||
| Flags: 1 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 | |||
| +--+--+--+--+--+--+--+--+ | +--+--+--+--+--+--+--+--+ | |||
| | |NP|M |E |V |L | | | | | |NP|M |E |V |L | | | | |||
| +--+--+--+--+--+--+--+--+ | +--+--+--+--+--+--+--+--+ | |||
| where: | where: | |||
| NP-Flag: No-PHP flag. If set, then the penultimate hop MUST | NP-Flag: No-PHP flag. If set, then the penultimate hop MUST | |||
| NOT pop the Prefix-SID before delivering the packet to the node | NOT pop the Prefix-SID before delivering packets to the node | |||
| that advertised the Prefix-SID. | that advertised the Prefix-SID. | |||
| M-Flag: Mapping Server Flag. If set, the SID is advertised | M-Flag: Mapping Server Flag. If set, the SID was advertised by | |||
| from the Segment Routing Mapping Server functionality as | a Segment Routing Mapping Server as described in | |||
| described in [I-D.filsfils-spring-segment-routing-ldp-interop]. | [I-D.ietf-spring-segment-routing-ldp-interop]. | |||
| E-Flag: Explicit-Null Flag. If set, any upstream neighbor of | E-Flag: Explicit-Null Flag. If set, any upstream neighbor of | |||
| the Prefix-SID originator MUST replace the Prefix-SID with a | the Prefix-SID originator MUST replace the Prefix-SID with the | |||
| Prefix-SID having an Explicit-NULL value (0 for IPv4) before | Explicit-NULL label (0 for IPv4, 2 for IPv6) before forwarding | |||
| forwarding the packet. | the packet. | |||
| The V-Flag: Value/Index Flag. If set, then the Prefix-SID | V-Flag: Value/Index Flag. If set, then the Prefix-SID carries | |||
| carries an absolute value. If not set, then the Prefix-SID | an absolute value. If not set, then the Prefix-SID carries an | |||
| carries an index. | index. | |||
| The L-Flag: Local/Global Flag. If set, then the value/index | L-Flag: Local/Global Flag. If set, then the value/index | |||
| carried by the Prefix-SID has local significance. If not set, | carried by the Prefix-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 | |||
| significance. | significance. | |||
| Other bits: Reserved. These MUST be zero when sent and are | Other bits: Reserved. These MUST be zero when sent and are | |||
| ignored when received. | ignored when received. | |||
| Algorithm: one octet identifying the algorithm the Prefix-SID is | Reserved: SHOULD be set to 0 on transmission and MUST be ignored | |||
| associated with as defined in Section 3.1. | on reception. | |||
| Algorithm: Single octet identifying the algorithm the Prefix-SID | ||||
| is associated with as defined in Section 3.1. | ||||
| A router receiving a Prefix-SID from a remote node and with an | A router receiving a Prefix-SID from a remote node and with an | |||
| algorithm value that such remote node has not advertised in the | algorithm value that such remote node has not advertised in the | |||
| SR-Algorithm sub-TLV (Section 3.1) MUST ignore the Prefix-SID sub- | SR-Algorithm Sub-TLV (Section 3.1) MUST ignore the Prefix-SID Sub- | |||
| TLV. | TLV. | |||
| SID/Index/Label: label or index value depending on the V-bit | SID/Index/Label: According to the V and L flags, it contains | |||
| setting. | either: | |||
| Examples: | ||||
| A 32 bit global index defining the offset in the SID/Label | ||||
| space advertised by this router - in this case the V and L | ||||
| flags MUST NOT be set. | ||||
| A 24 bit local label where the 20 rightmost bits are used | A 32-bit index defining the offset in the SID/Label space | |||
| for encoding the label value - in this case the V and L | advertised by this router. | |||
| flags MUST be set. | ||||
| If multiple Prefix-SIDs are advertised for the same prefix, the | A 24-bit label where the 20 rightmost bits are used for | |||
| receiving router MUST use the first encoded SID and MAY use the | encoding the label value. | |||
| subsequent SIDs. | ||||
| When propagating Prefix-SIDs between areas, if multiple prefix-SIDs | If an OSPFv3 router advertises multiple Prefix-SIDs for the same | |||
| are advertised for a prefix, an implementation SHOULD preserve the | prefix, topology and algorithm, all of them MUST be ignored. | |||
| original order when advertising prefix-SIDs to other areas. This | ||||
| allows implementations that only support a single Prefix-SID to have | ||||
| 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 E and P flags advertised by the next-hop router, if | take into account, as described below, the E, NP and M flags | |||
| next-hop router advertised the SID for the prefix. This MUST be done | advertised by the next-hop router if that router advertised the SID | |||
| regardless of whether the next-hop router contributes to the best | for the prefix. This MUST be done regardless of whether the next-hop | |||
| path to the prefix. | router contributes to the best 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 and the E-flag MUST be clear for | |||
| area prefixes that are originated by the ABR based on intra-area or | Prefix-SIDs allocated to inter-area prefixes that are originated by | |||
| inter-area reachability between areas. When the inter-area prefix is | the ABR based on intra-area or inter-area reachability between areas, | |||
| generated based on a prefix which is directly attached to the ABR, | unless the advertised prefix is directly attached to the ABR. | |||
| NP-Flag SHOULD NOT be set | ||||
| The NP-Flag (No-PHP) MUST be set on the Prefix-SIDs allocated to | ||||
| redistributed prefixes, unless the redistributed prefix is directly | ||||
| attached to 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- | The NP-Flag (No-PHP) MUST be set and the E-flag MUST be clear for | |||
| Prefix-SIDs allocated to redistributed prefixes, unless the | ||||
| redistributed prefix is directly attached to the ASBR. | ||||
| 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. If the | |||
| such case, MPLS EXP bits of the Prefix-SID are not preserved for the | NP-flag is not set, then the received E-flag is ignored. | |||
| final destination (the Prefix-SID being removed). If the NP-Flag is | ||||
| clear then the received E-flag is ignored. | ||||
| If the NP-Flag is set then: | If the NP-flag is set then: | |||
| If the E-flag is not set then any upstream neighbor of the Prefix- | If the E-flag is not set, then any upstream neighbor of the | |||
| SID originator MUST keep the Prefix-SID on top of the stack. This | Prefix-SID originator MUST keep the Prefix-SID on top of the | |||
| is useful when the originator of the Prefix-SID must stitch the | stack. This is useful when the originator of the Prefix-SID need | |||
| incoming packet into a continuing MPLS LSP to the final | to stitch the incoming packet into a continuing MPLS LSP to the | |||
| destination. This could occur at an inter-area border router | final destination. This could occur at an Area Border Router | |||
| (prefix propagation from one area to another) or at an inter- | (prefix propagation from one area to another) or at an AS Boundary | |||
| domain border router (prefix propagation from one domain to | Router (prefix propagation from one domain to another). | |||
| another). | ||||
| If the E-flag is set then any upstream neighbor of the Prefix-SID | If the E-flag is set, then any upstream neighbor of the Prefix-SID | |||
| originator MUST replace the Prefix-SID with a Prefix-SID having an | originator MUST replace the Prefix-SID with an Explicit-NULL | |||
| Explicit-NULL value. This is useful, e.g., when the originator of | label. This is useful, e.g., when the originator of the Prefix- | |||
| the Prefix-SID is the final destination for the related prefix and | SID is the final destination for the related prefix and the | |||
| the originator wishes to receive the packet with the original EXP | originator wishes to receive the packet with the original EXP | |||
| bits. | bits. | |||
| When M-Flag is set, NP-flag and E-flag MUST be ignored at reception. | When the M-Flag is set, the NP-flag and the E-flag MUST be ignored at | |||
| 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: | |||
| Prefix is of 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. | |||
| Prefix is of 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 setting LA-bit | which is advertising prefix reachability and is setting LA-bit in | |||
| in the Prefix Options as described in section 3.1 of | the Prefix Options as described in | |||
| [I-D.ietf-ospf-ospfv3-lsa-extend]. | [I-D.ietf-ospf-ospfv3-lsa-extend]. | |||
| Prefix is of 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 setting LA-bit | which is advertising prefix reachability and is setting LA-bit in | |||
| in the Prefix Options as described in section 3.1 of | the Prefix Options as described in | |||
| [I-D.ietf-ospf-ospfv3-lsa-extend]. | [I-D.ietf-ospf-ospfv3-lsa-extend]. | |||
| When a Prefix-SID is advertised in an Extended Prefix Range TLV, then | When a Prefix-SID is advertised in the OSPFv3 Extended Prefix Range | |||
| the value advertised in Prefix SID Sub-TLV is interpreted as a | TLV, then the value advertised in the Prefix SID Sub-TLV is | |||
| starting SID value. | interpreted as a starting SID/Label 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::1/128, Prefix-SID: Index 1 | Router-A: 2001:DB8::1/128, Prefix-SID: Index 1 | |||
| Router-B: 192::2/128, Prefix-SID: Index 2 | Router-B: 2001:DB8::2/128, Prefix-SID: Index 2 | |||
| Router-C: 192::3/128, Prefix-SID: Index 3 | Router-C: 2001:DB8::3/128, Prefix-SID: Index 3 | |||
| Router-D: 192::4/128, Prefix-SID: Index 4 | Router-D: 2001:DB8::4/128, Prefix-SID: Index 4 | |||
| then the Address Prefix field in the OSPFv3 Extended Prefix Range TLV | then the Address Prefix field in the OSPFv3 Extended Prefix Range TLV | |||
| is set to 192::1, Prefix Length would be set to 128, Range Size would | would be set to 2001:DB8::1, Prefix Length would be set to 128, Range | |||
| be set to 4 and the Index value in the Prefix-SID Sub-TLV would be | Size would be set to 4, and the Index value in the Prefix-SID Sub-TLV | |||
| set to 1. | would be set to 1. | |||
| Example 2: If the following prefixes need to be mapped into the | Example 2: If the following prefixes need to be mapped into the | |||
| corresponding Prefix-SID indexes: | corresponding Prefix-SID indexes: | |||
| 10:1:1::0/120, Prefix-SID: Index 51 | 2001:DB8:1::0/120, Prefix-SID: Index 51 | |||
| 10:1:1::100/120, Prefix-SID: Index 52 | 2001:DB8:1::100/120, Prefix-SID: Index 52 | |||
| 10:1:1::200/120, Prefix-SID: Index 53 | 2001:DB8:1::200/120, Prefix-SID: Index 53 | |||
| 10:1:1::300/120, Prefix-SID: Index 54 | 2001:DB8:1::300/120, Prefix-SID: Index 54 | |||
| 10:1:1::400/120, Prefix-SID: Index 55 | 2001:DB8:1::400/120, Prefix-SID: Index 55 | |||
| 10:1:1::500/120, Prefix-SID: Index 56 | 2001:DB8:1::500/120, Prefix-SID: Index 56 | |||
| 10:1:1::600/120, Prefix-SID: Index 57 | 2001:DB8:1::600/120, Prefix-SID: Index 57 | |||
| then the Address Prefix field in the OSPFv3 Extended Prefix Range TLV | ||||
| is set to 10:1:1::0, Prefix Length would be set to 120, Range Size | ||||
| would be set to 7 and the Index value in the Prefix-SID Sub-TLV would | ||||
| be set to 51. | ||||
| 6. SID/Label Binding Sub-TLV | ||||
| The SID/Label Binding Sub-TLV is used to advertise SID/Label mapping | ||||
| for a path to the prefix. | ||||
| The SID/Label Binding Sub-TLV MAY be originated by any router in an | ||||
| OSPFv3 domain. The router may advertise a SID/Label binding to a FEC | ||||
| along with at least a single 'nexthop style' anchor. The protocol | ||||
| supports more than one 'nexthop style' anchor to be attached to a | ||||
| SID/Label binding, which results into a simple path description | ||||
| language. In analogy to RSVP the terminology for this is called an | ||||
| 'Explicit Route Object' (ERO). Since ERO style path notation allows | ||||
| anchoring SID/label bindings to both link and node IP addresses, any | ||||
| Label Switched Path (LSP) can be described. Furthermore, SID/Label | ||||
| Bindings from external protocols can also be re-advertised. | ||||
| The SID/Label Binding Sub-TLV may be used for advertising SID/Label | ||||
| Bindings and their associated Primary and Backup paths. In one | ||||
| single TLV, either a primary ERO Path, backup ERO Path, or both are | ||||
| advertised. If a router wants to advertise multiple parallel paths, | ||||
| then it can generate several TLVs for the same Prefix/FEC. Each | ||||
| occurrence of a Binding TLV for a given FEC Prefix will add a new | ||||
| path. | ||||
| SID/Label Binding Sub-TLV is a Sub-TLV of the following OSPFv3 TLVs, | ||||
| as defined in [I-D.ietf-ospf-ospfv3-lsa-extend] and in Section 4: | ||||
| Intra-Area Prefix TLV | ||||
| Inter-Area Prefix TLV | ||||
| External Prefix TLV | ||||
| OSPFv3 Extended Prefix Range TLV | ||||
| Multiple SID/Label Binding Sub-TLVs can be present in these TLVs. | ||||
| The SID/Label Binding Sub-TLV has following format: | ||||
| 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 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Type | Length | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Flags | Weight | Reserved | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Sub-TLVs (variable) | | ||||
| +- -+ | ||||
| | | | ||||
| where: | ||||
| Type: TBD, suggested value 7 | ||||
| Length: variable | ||||
| Flags: 1 octet field of following flags: | ||||
| 0 1 2 3 4 5 6 7 | ||||
| +-+-+-+-+-+-+-+-+ | ||||
| |M| | | ||||
| +-+-+-+-+-+-+-+-+ | ||||
| where: | ||||
| M-bit - When the bit is set the binding represents the | ||||
| mirroring context as defined in | ||||
| [I-D.minto-rsvp-lsp-egress-fast-protection]. | ||||
| Weight: weight used for load-balancing purposes. The use of the | ||||
| weight is defined in section 3.5.1 of | ||||
| [I-D.ietf-spring-segment-routing]. | ||||
| SID/Label Binding Sub-TLV currently supports following Sub-TLVs: | ||||
| SID/Label Sub-TLV as described in Section 2.1. This Sub-TLV MUST | ||||
| appear in the SID/Label Binding Sub-TLV and it MUST only appear | ||||
| once. | ||||
| ERO Metric Sub-TLV as defined in Section 6.1. | ||||
| ERO Sub-TLVs as defined in Section 6.2. | ||||
| 6.1. ERO Metric Sub-TLV | ||||
| The ERO Metric Sub-TLV is a Sub-TLV of the SID/Label Binding Sub-TLV. | ||||
| 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 | ||||
| router SHOULD advertise the ERO Metric Sub-TLV in an advertised ERO | ||||
| TLV. The cost of the ERO Metric Sub-TLV SHOULD be set to the | ||||
| cumulative IGP or TE path cost of the advertised ERO. Since | ||||
| manipulation of the Metric field may attract or repel traffic to and | ||||
| from the advertised segment, it MAY be manually overridden. | ||||
| 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 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Type | Length | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Metric (4 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ERO Metric Sub-TLV format | ||||
| where: | ||||
| Type: TBD, suggested value 8 | ||||
| Length: Always 4 | ||||
| Metric: A 4 octet metric representing the aggregate IGP or TE path | ||||
| cost. | ||||
| 6.2. ERO Sub-TLVs | ||||
| All 'ERO' information represents an ordered set which describes the | ||||
| 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 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 | ||||
| list. This applies equally to advertised backup EROs. | ||||
| All ERO Sub-TLVs must immediately follow the (SID)/Label Sub-TLV. | ||||
| All Backup ERO Sub-TLVs must immediately follow the last ERO Sub-TLV. | ||||
| 6.2.1. IPv4 ERO Sub-TLV | ||||
| 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 | ||||
| style of encoding. Its semantics have been borrowed from [RFC3209]. | ||||
| 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 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Type | Length | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Flags | Reserved | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | IPv4 Address (4 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| IPv4 ERO Sub-TLV format | ||||
| where: | ||||
| Type: TBD, suggested value 9 | ||||
| Length: 8 bytes | ||||
| Flags: 1 octet field of following flags: | ||||
| 0 1 2 3 4 5 6 7 | ||||
| +-+-+-+-+-+-+-+-+ | ||||
| |L| | | ||||
| +-+-+-+-+-+-+-+-+ | ||||
| where: | ||||
| L-bit - If the L-bit is set, then the segment path is | ||||
| designated as 'loose'. Otherwise, the segment path is | ||||
| designated as 'strict'. | ||||
| IPv4 Address - the address of the explicit route hop. | ||||
| 6.2.2. IPv6 ERO Sub-TLV | ||||
| IPv6 ERO Sub-TLV is a Sub-TLV of the SID/Label Binding Sub-TLV. | ||||
| The IPv6 ERO Sub-TLV (Type TBA) describes a path segment using IPv6 | ||||
| Address style of encoding. Its semantics have been borrowed from | ||||
| [RFC3209]. | ||||
| 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 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Type | Length | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Flags | Reserved | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | | | ||||
| +- -+ | ||||
| | | | ||||
| +- IPv6 Address -+ | ||||
| | | | ||||
| +- -+ | ||||
| | | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| IPv6 ERO Sub-TLV format | ||||
| where: | ||||
| Type: TBD, suggested value 10 | ||||
| Length: 8 bytes | ||||
| Flags: 1 octet field of following flags: | ||||
| 0 1 2 3 4 5 6 7 | ||||
| +-+-+-+-+-+-+-+-+ | ||||
| |L| | | ||||
| +-+-+-+-+-+-+-+-+ | ||||
| where: | ||||
| L-bit - If the L-bit is set, then the segment path is | ||||
| designated as 'loose'. Otherwise, the segment path is | ||||
| designated as 'strict'. | ||||
| IPv6 Address - the address of the explicit route hop. | ||||
| 6.2.3. Unnumbered Interface ID ERO Sub-TLV | ||||
| The Unnumbered Interface ID ERO Sub-TLV is a Sub-TLV of the SID/Label | ||||
| Binding Sub-TLV. | ||||
| The appearance and semantics of the 'Unnumbered Interface ID' have | ||||
| been borrowed from [RFC3477]. | ||||
| The Unnumbered Interface-ID ERO Sub-TLV describes a path segment that | ||||
| spans over an unnumbered interface. Unnumbered interfaces are | ||||
| referenced using the interface index. Interface indices are assigned | ||||
| local to the router and therefore not unique within a domain. 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. | ||||
| 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 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Type | Length | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Flags | Reserved | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Router ID | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Interface ID | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| where: | ||||
| Unnumbered Interface ID ERO Sub-TLV format | ||||
| Type: TBD, suggested value 11 | ||||
| Length: 12 bytes | ||||
| Flags: 1 octet field of following flags: | ||||
| 0 1 2 3 4 5 6 7 | ||||
| +-+-+-+-+-+-+-+-+ | ||||
| |L| | | ||||
| +-+-+-+-+-+-+-+-+ | ||||
| where: | ||||
| L-bit - If the L-bit is set, then the segment path is | ||||
| designated as 'loose'. Otherwise, the segment path is | ||||
| designated as 'strict'. | ||||
| Router-ID: Router-ID of the next-hop. | ||||
| Interface ID: is the identifier assigned to the link by the router | ||||
| specified by the Router-ID. | ||||
| 6.2.4. IPv4 Backup ERO Sub-TLV | ||||
| IPv4 Prefix Backup ERO Sub-TLV is a Sub-TLV of the SID/Label Binding | ||||
| Sub-TLV. | ||||
| The IPv4 Backup ERO Sub-TLV describes a path segment using IPv4 | ||||
| Address style of encoding. Its semantics have been borrowed from | ||||
| [RFC3209]. | ||||
| 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 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Type | Length | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Flags | Reserved | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | IPv4 Address (4 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| IPv4 Backup ERO Sub-TLV format | ||||
| where: | ||||
| Type: TBD, suggested value 12 | ||||
| Length: 8 bytes | ||||
| Flags: 1 octet field of following flags: | ||||
| 0 1 2 3 4 5 6 7 | ||||
| +-+-+-+-+-+-+-+-+ | ||||
| |L| | | ||||
| +-+-+-+-+-+-+-+-+ | ||||
| where: | ||||
| L-bit - If the L-bit is set, then the segment path is | ||||
| designated as 'loose'. Otherwise, the segment path is | ||||
| designated as 'strict'.' | ||||
| IPv4 Address - the address of the explicit route hop. | ||||
| 6.2.5. IPv6 Backup ERO Sub-TLV | ||||
| The IPv6 ERO Sub-TLV is a Sub-TLV of the SID/Label Binding Sub-TLV. | ||||
| The IPv6 Backup ERO Sub-TLV describes a Backup path segment using | ||||
| IPv6 Address style of encoding. Its appearance and semantics have | ||||
| been borrowed from [RFC3209]. | ||||
| The 'L' bit in the Flags is a one-bit attribute. If the L bit is | ||||
| set, then the value of the attribute is 'loose.' Otherwise, the | ||||
| value of the attribute is 'strict.' | ||||
| 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 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Type | Length | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Flags | Reserved | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | | | ||||
| +- -+ | ||||
| | | | ||||
| +- IPv6 Address -+ | ||||
| | | | ||||
| +- -+ | ||||
| | | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| IPv6 Backup ERO Sub-TLV format | ||||
| where: | ||||
| Type: TBD, suggested value 13 | ||||
| Length: 8 bytes | ||||
| Flags: 1 octet field of following flags: | ||||
| 0 1 2 3 4 5 6 7 | ||||
| +-+-+-+-+-+-+-+-+ | ||||
| |L| | | ||||
| +-+-+-+-+-+-+-+-+ | ||||
| where: | ||||
| L-bit - If the L-bit is set, then the segment path is | ||||
| designated as 'loose'. Otherwise, the segment path is | ||||
| designated as 'strict'. | ||||
| IPv6 Address - the address of the explicit route hop. | ||||
| 6.2.6. Unnumbered Interface ID Backup ERO Sub-TLV | ||||
| The Unnumbered Interface ID Backup Sub-TLV is a Sub-TLV of the SID/ | ||||
| Label Binding Sub-TLV. | ||||
| The appearance and semantics of the 'Unnumbered Interface ID' have | ||||
| been borrowed from [RFC3477]. | ||||
| The Unnumbered Interface-ID Backup ERO Sub-TLV describes a path | ||||
| segment that spans over an unnumbered interface. Unnumbered | ||||
| interfaces are referenced using the interface index. Interface | ||||
| indices are 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 and hence need to be disambiguated with specification | ||||
| of the unique Router-ID. | ||||
| 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 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Type | Length | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Flags | Reserved | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Router ID | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Interface ID | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Unnumbered Interface ID Backup ERO Sub-TLV format | ||||
| where: | ||||
| Type: TBD, suggested value 14 | ||||
| Length: 12 bytes | ||||
| Flags: 1 octet field of following flags: | ||||
| 0 1 2 3 4 5 6 7 | ||||
| +-+-+-+-+-+-+-+-+ | ||||
| |L| | | ||||
| +-+-+-+-+-+-+-+-+ | ||||
| where: | ||||
| L-bit - If the L-bit is set, then the segment path is | ||||
| designated as 'loose'. Otherwise, the segment path is | ||||
| designated as 'strict'. | ||||
| Router-ID: Router-ID of the next-hop. | ||||
| Interface ID: is the identifier assigned to the link by the router | then the Prefix field in the OSPFv3 Extended Prefix Range TLV would | |||
| specified by the Router-ID. | be set to 2001:DB8:1::0, Prefix Length would be set to 120, Range | |||
| Size would be set to 7, and the Index value in the Prefix-SID Sub-TLV | ||||
| would be set to 51. | ||||
| 7. Adjacency Segment Identifier (Adj-SID) | 6. 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 | 6.1. Adj-SID Sub-TLV | |||
| The extended OSPFv3 LSAs, as defined in | ||||
| [I-D.ietf-ospf-ospfv3-lsa-extend], are used to advertise prefix SID | ||||
| in OSPFv3 | ||||
| The Adj-SID Sub-TLV is an optional Sub-TLV of the Router-Link TLV as | Adj-SID is an optional Sub-TLV of the Router-Link TLV as defined in | |||
| defined in [I-D.ietf-ospf-ospfv3-lsa-extend]. It MAY appear multiple | [I-D.ietf-ospf-ospfv3-lsa-extend]. It MAY appear multiple times in | |||
| times in Router-Link TLV. Examples where more than one Adj-SID may | the Router-Link TLV. The Adj-SID Sub-TLV has the following format: | |||
| be used per neighbor are described in section 4 of | ||||
| [I-D.filsfils-spring-segment-routing-use-cases]. The Adj-SID Sub-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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length | | | Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Flags | Weight | Reserved | | | Flags | Weight | Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | SID/Label/Index (variable) | | | SID/Label/Index (variable) | | |||
| +---------------------------------------------------------------+ | +---------------------------------------------------------------+ | |||
| where: | where: | |||
| Type: TBD, suggested value 5. | Type: 5 | |||
| Length: variable. | Length: 7 or 8 octets, dependent on the V flag. | |||
| Flags. 1 octet field of 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 | |||
| significance. | significance. | |||
| The G-Flag. Group Flag. When set, the G-Flag indicates that | The G-Flag: Group Flag. When set, the G-Flag indicates that | |||
| the Adj-SID refers to a set of adjacencies (and therefore MAY | the Adj-SID refers to a group of adjacencies (and therefore MAY | |||
| be assigned to other adjacencies as well). | be assigned to other adjacencies as well). | |||
| P-Flag. Persistent flag. When set, the P-Flag indicates that | P-Flag. Persistent flag. When set, the P-Flag indicates that | |||
| the Adj-SID is persistently allocated, i.e., the Adj-SID value | the Adj-SID is persistently allocated, i.e., the Adj-SID value | |||
| remains consistent across router restart and/or interface flap. | remains consistent across router restart and/or interface flap. | |||
| Other bits: Reserved. These MUST be zero when sent and are | Other bits: Reserved. These MUST be zero when sent and are | |||
| ignored when received. | ignored when received. | |||
| Weight: weight used for load-balancing purposes. The use of the | Reserved: SHOULD be set to 0 on transmission and MUST be ignored | |||
| weight is defined in section 3.5.1 of | on reception. | |||
| [I-D.ietf-spring-segment-routing]. | ||||
| SID/Index/Label: label or index value depending on the V-bit | ||||
| setting. | ||||
| Examples: | Weight: Weight used for load-balancing purposes. The use of the | |||
| weight is defined in [I-D.ietf-spring-segment-routing]. | ||||
| A 32 bit global index defining the offset in the SID/Label | SID/Index/Label: According to the V and L flags, it contains | |||
| space advertised by this router - in this case the V and L | either: | |||
| flags MUST NOT be set. | ||||
| A 24 bit local label where the 20 rightmost bits are used | A 32-bit index defining the offset in the SID/Label space | |||
| for encoding the label value - in this case the V and L | advertised by this router. | |||
| flags MUST be set. | ||||
| 16 octet IPv6 address - in this case the V-flag MUST be set. | A 24-bit label where the 20 rightmost bits are used for | |||
| The L-flag MUST NOT be set if the IPv6 address is globally | encoding the label value. | |||
| unique. | ||||
| An SR capable router MAY allocate an Adj-SID for each of its | An SR capable router MAY allocate an Adj-SID for each of its | |||
| adjacencies and set the B-Flag when the adjacency is eligible for | adjacencies and set the B-Flag when the adjacency is eligible for | |||
| protection by an FRR mechanism (IP or MPLS) as described in section | protection by an FRR mechanism (IP or MPLS) as described in | |||
| 3.5 of [I-D.ietf-spring-segment-routing]. | [I-D.ietf-spring-segment-routing]. | |||
| An SR capable router MAY allocate more than one Adj-SID to an | An SR capable router MAY allocate more than one Adj-SID to an | |||
| adjacency | adjacency | |||
| An SR capable router MAY allocate the same Adj-SID to different | An SR capable router MAY allocate the same Adj-SID to different | |||
| adjacencies | adjacencies | |||
| When the P-flag is not set, the Adj-SID MAY be persistent. When the | When the P-flag is not set, the Adj-SID MAY be persistent. When the | |||
| P-flag is set, the Adj-SID MUST be persistent. | P-flag is set, the Adj-SID MUST be persistent. | |||
| 7.2. LAN Adj-SID Sub-TLV | 6.2. LAN Adj-SID Sub-TLV | |||
| The LAN Adj-SID is an optional Sub-TLV of the Router-Link TLV. It | LAN Adj-SID is an optional Sub-TLV of the Router-Link TLV. It MAY | |||
| MAY appear multiple times in the Router-Link TLV. It is used to | appear multiple times in the Router-Link TLV. It is used to | |||
| advertise a SID/Label for an adjacency to a non-DR neighbor on a | advertise a SID/Label for an adjacency to a non-DR router on a | |||
| broadcast or NBMA network. | broadcast, NBMA, or hybrid [RFC6845] network. | |||
| 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 | Weight | Reserved | | | Flags | Weight | Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Neighbor ID | | | Neighbor ID | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | SID/Label/Index (variable) | | | SID/Label/Index (variable) | | |||
| +---------------------------------------------------------------+ | +---------------------------------------------------------------+ | |||
| where: | where: | |||
| Type: TBD, suggested value 6. | Type: 6 | |||
| Length: variable. | ||||
| Flags. 1 octet field of following flags: | ||||
| 0 1 2 3 4 5 6 7 | ||||
| +-+-+-+-+-+-+-+-+ | ||||
| |B|V|L|G|P| | | ||||
| +-+-+-+-+-+-+-+-+ | ||||
| where: | ||||
| B-Flag: Backup-flag: set if the LAN-Adj-SID refer to an | ||||
| adjacency that is eligible for protection (e.g.: using IPFRR or | ||||
| MPLS-FRR) as described in section 3.1 of | ||||
| [I-D.filsfils-spring-segment-routing-use-cases]. | ||||
| The V-Flag: Value/Index Flag. If set, then the LAN Adj-SID | ||||
| carries an absolute value. If not set, then the LAN Adj-SID | ||||
| carries an index. | ||||
| The L-Flag: Local/Global Flag. If set, then the value/index | ||||
| carried by the LAN Adj-SID has local significance. If not set, | ||||
| then the value/index carried by this subTLV has global | ||||
| significance. | ||||
| The G-Flag. Group Flag. When set, the G-Flag indicates that | ||||
| the LAN Adj-SID refers to a set of adjacencies (and therefore | ||||
| MAY be assigned to other adjacencies as well). | ||||
| P-Flag. Persistent flag. When set, the P-Flag indicates that | ||||
| the Adj-SID is persistently allocated, i.e., the Adj-SID value | ||||
| remains consistent across router restart and/or interface flap. | ||||
| Other bits: Reserved. These MUST be zero when sent and are | Length: 11 or 12 octets, dependent on V-flag. | |||
| ignored when received. | ||||
| Weight: weight used for load-balancing purposes. The use of the | Flags: same as in Section 6.1 | |||
| weight is defined in section 3.5.1 of | ||||
| [I-D.ietf-spring-segment-routing]. | ||||
| Neighbor ID: The Router ID of the neighbor for which the Adj-SID | Weight: Weight used for load-balancing purposes. The use of the | |||
| is advertised. | weight is defined in [I-D.ietf-spring-segment-routing]. | |||
| SID/Index/Label: label or index value depending on the V-bit | Reserved: SHOULD be set to 0 on transmission and MUST be ignored | |||
| setting. | on reception. | |||
| Examples: | Neighbor ID: The Router ID of the neighbor for which the LAN-Adj- | |||
| SID is advertised. | ||||
| A 32 bit global index defining the offset in the SID/Label | SID/Index/Label: According to the V and L flags, it contains | |||
| space advertised by this router - in this case the V and L | either: | |||
| flags MUST NOT be set. | ||||
| A 24 bit local label where the 20 rightmost bits are used | A 32-bit index defining the offset in the SID/Label space | |||
| for encoding the label value - in this case the V and L | advertised by this router. | |||
| flags MUST be set. | ||||
| 16 octet IPv6 address - in this case the V-flag MUST be set. | A 24-bit label where the 20 rightmost bits are used for | |||
| The L-flag MUST NOT be set if the IPv6 address is globally | encoding the label value. | |||
| unique. | ||||
| When the P-flag is not set, the Adj-SID MAY be persistent. When | When the P-flag is not set, the Adj-SID MAY be persistent. When | |||
| the P-flag is set, the Adj-SID MUST be persistent. | the P-flag is set, the Adj-SID MUST be persistent. | |||
| 8. Elements of Procedure | 7. Elements of Procedure | |||
| 8.1. Intra-area Segment routing in OSPFv3 | 7.1. Intra-area Segment routing in OSPFv3 | |||
| An OSPFv3 router that supports segment routing MAY advertise Prefix- | An OSPFv3 router that supports segment routing MAY advertise Prefix- | |||
| SIDs for any prefix that it is advertising reachability for (e.g., | 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 | ||||
| the Prefix-SID MUST be the same. This is required in order to allow | ||||
| traffic load-balancing when multiple equal cost paths to the | ||||
| destination exist in the network. | ||||
| The 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.ietf-spring-segment-routing-ldp-interop]). A | |||
| Mapping Server advertises Prefix-SID for remote prefixes that exist | Mapping Server advertises Prefix-SIDs for remote prefixes that exist | |||
| in the network. Multiple Mapping Servers can advertise Prefix-SID | in the OSPFv3 routing domain. Multiple Mapping Servers can advertise | |||
| for the same prefix, in which case the same Prefix-SID MUST be | Prefix-SIDs for the same prefix, in which case the same Prefix-SID | |||
| advertised by all of them. The SR Mapping Server could use either | MUST be advertised by all of them. The SR Mapping Server could use | |||
| area scope or autonomous system flooding scope when advertising | either area scope or autonomous system flooding scope when | |||
| Prefix SID for prefixes, based on the configuration of the SR Mapping | advertising Prefix SID for prefixes, based on the configuration of | |||
| Server. Depending on the flooding scope used, the SR Mapping Server | the SR Mapping Server. Depending on the flooding scope used, the SR | |||
| chooses the LSA that will be used. If the area flooding scope is | Mapping Server chooses the OSPFv3 LSA type that will be used. If the | |||
| needed, E-Intra-Area-Prefix-LSA ([I-D.ietf-ospf-ospfv3-lsa-extend]) | area flooding scope is needed, E-Intra-Area-Prefix-LSA | |||
| is used. If autonomous system flooding scope is needed, E-AS- | ([I-D.ietf-ospf-ospfv3-lsa-extend]) is used. If autonomous system | |||
| External-LSA ([I-D.ietf-ospf-ospfv3-lsa-extend]) is used. | flooding scope is needed, E-AS-External-LSA | |||
| ([I-D.ietf-ospf-ospfv3-lsa-extend]) is used. | ||||
| When a Prefix-SID is advertised by the Mapping Server, which is | When a Prefix-SID is advertised by the Mapping Server, which is | |||
| indicated by the M-flag in the Prefix-SID Sub-TLV (Section 5), the | indicated by the M-flag in the Prefix-SID Sub-TLV (Section 5), the | |||
| route type as implied by the LSA type is ignored and the Prefix-SID | route type as implied by the LSA type is ignored and the Prefix-SID | |||
| is bound to the corresponding prefix independent of the route type. | is bound to the corresponding prefix independent of the route type. | |||
| Advertisement of the Prefix-SID by the Mapping Server using Inter- | Advertisement of the Prefix-SID by the Mapping Server using Inter- | |||
| Area Prefix TLV, External-Prefix TLV or Intra-Area-Prefix TLV | Area Prefix TLV, External-Prefix TLV or Intra-Area-Prefix TLV | |||
| ([I-D.ietf-ospf-ospfv3-lsa-extend]) does not itself contribute to the | ([I-D.ietf-ospf-ospfv3-lsa-extend]) does not itself contribute to the | |||
| prefix reachability. The NU-bit MUST be set in the PrefixOptions | prefix reachability. The NU-bit MUST be set in the PrefixOptions | |||
| field of the LSA which is used by the Mapping Server to advertise SID | field of the LSA which is used by the Mapping Server to advertise SID | |||
| or SID range, which prevents the advertisement to contribute to | or SID Range, which prevents the advertisement to contribute to the | |||
| prefix reachability. | prefix reachability. | |||
| SR Mapping Server MUST use OSPF Extended Prefix Range TLV when | An SR Mapping Server MUST use the OSPFv3 Extended Prefix Range TLVs | |||
| advertising SIDs for prefixes. Prefixes of different route-types can | when advertising SIDs for prefixes. Prefixes of different route- | |||
| be combined in a single OSPF Extended Prefix Range TLV advertised by | types can be combined in a single OSPFv3 Extended Prefix Range TLV | |||
| the SR Mapping Server. | advertised by an SR Mapping Server. | |||
| Area scoped OSPF Extended Prefix Range TLV are propagated between | Area-scoped OSPFv3 Extended Prefix Range TLVs are propagated between | |||
| areas. Similar to propagation of prefixes between areas, 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 OSPFv3 Extended Prefix Range TLV that it considers to | |||
| the best from the set it received. The rules used to pick the best | be the best from the set it received. The rules used to pick the | |||
| OSPF Extended Prefix Range TLV is described in Section 4. | best OSPFv3 Extended Prefix Range TLV are described in Section 4. | |||
| When propagating OSPF Extended Prefix Range TLV between areas, ABR | When propagating an OSPFv3 Extended Prefix Range TLV between areas, | |||
| MUST set the IA-Flag, that is used to prevent redundant flooding of | ABRs MUST set the IA-Flag, that is used to prevent redundant flooding | |||
| the OSPF Extended Prefix Range TLV between areas as described in | of the OSPFv3 Extended Prefix Range TLV between areas as described in | |||
| Section 4. | Section 4. | |||
| 8.2. Inter-area Segment routing in OSPFv3 | 7.2. Inter-area Segment routing in OSPFv3 | |||
| In order to support SR in a multi-area environment, OSPFv3 must | In order to support SR in a multi-area environment, OSPFv3 MUST | |||
| propagate Prefix-SID information between areas. The following | propagate Prefix-SID information between areas. The following | |||
| procedure is used in order to propagate Prefix SIDs between areas. | procedure is used to propagate Prefix SIDs between areas. | |||
| When an OSPFv3 ABR advertises a Inter-Area-Prefix-LSA from an intra- | When an OSPFv3 ABR advertises a Inter-Area-Prefix-LSA from an intra- | |||
| area prefix to all its connected areas, it will also include Prefix- | area prefix to all its connected areas, it will also include Prefix- | |||
| SID Sub-TLV, as described in Section 5. The Prefix-SID value will be | SID Sub-TLV, as described in Section 5. The Prefix-SID value will be | |||
| set as follows: | set as follows: | |||
| The ABR will look at its best path to the prefix in the source | The ABR will look at its best path to the prefix in the source | |||
| area and find out the advertising router associated with the best | area and find the advertising router associated with the best path | |||
| path to that prefix. | to that prefix. | |||
| 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 source area | If no Prefix-SID was advertised for the prefix in the source area | |||
| by the router that contributes to the best path to the prefix, the | by the router that contributes to the best path to the prefix, the | |||
| originating ABR will use the Prefix-SID advertised by any other | originating ABR will use the Prefix-SID advertised by any other | |||
| router when propagating Prefix-SID for the prefix to other areas. | router when propagating the Prefix-SID for the prefix to other | |||
| areas. | ||||
| When an OSPFv3 ABR advertises Inter-Area-Prefix-LSA LSAs from an | When an OSPFv3 ABR advertises Inter-Area-Prefix-LSA LSAs from an | |||
| inter-area route to all its connected areas it will also include | inter-area route to all its connected areas, it will also include | |||
| Prefix-SID Sub-TLV, as described in Section 5. The Prefix-SID value | Prefix-SID Sub-TLV, as described in Section 5. The Prefix-SID value | |||
| will be set as follows: | will be set as follows: | |||
| The ABR will look at its best path to the prefix in the source | The ABR will look at its best path to the prefix in the backbone | |||
| area and find out the advertising router associated with the best | area and find the advertising router associated with the best path | |||
| path to that prefix. | to that prefix. | |||
| The ABR will then look if such router advertised a Prefix-SID for | The ABR will then determine if such router advertised a Prefix-SID | |||
| 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 source area | If no Prefix-SID was advertised for the prefix in the backbone | |||
| by the ABR that contributes to the best path to the prefix, the | area by the ABR that contributes to the best path to the prefix, | |||
| originating ABR will use the Prefix-SID advertised by any other | the originating ABR will use the Prefix-SID advertised by any | |||
| router when propagating Prefix-SID for the prefix to other areas. | other router when propagating the Prefix-SID for the prefix to | |||
| other areas. | ||||
| 8.3. SID for External Prefixes | 7.3. Segment Routing for External Prefixes | |||
| AS-External-LSAs are flooded domain wide. When an ASBR, which | AS-External-LSAs are flooded domain wide. When an ASBR, which | |||
| supports SR, generates E-AS-External-LSA, it should also include | supports SR, generates E-AS-External-LSA, it SHOULD also include | |||
| Prefix-SID Sub-TLV, as described in Section 5. The Prefix-SID value | Prefix-SID Sub-TLV, as described in Section 5. The Prefix-SID value | |||
| will be set to the SID that has been reserved for that prefix. | will be set to the SID that has been reserved for that prefix. | |||
| When an NSSA ASBR translates an E-NSSA-LSA into an E-AS-External-LSA, | When an NSSA [RFC3101] ABR translates an E-NSSA-LSA into an E-AS- | |||
| it should also advertise the Prefix-SID for the prefix. The NSSA ABR | External-LSA, it SHOULD also advertise the Prefix-SID for the prefix. | |||
| determines its best path to the prefix advertised in the translated | The NSSA ABR determines its best path to the prefix advertised in the | |||
| E-NSSA-LSA and finds the advertising router associated with that | translated E-NSSA-LSA and finds the advertising router associated | |||
| path. If the advertising router has advertised a Prefix-SID for the | with that path. If the advertising router has advertised a Prefix- | |||
| prefix, then the NSSA ABR uses it when advertising the Prefix-SID in | SID for the prefix, then the NSSA ABR uses it when advertising the | |||
| the E-AS-External-LSA. Otherwise the Prefix-SID advertised by any | Prefix-SID for the E-AS-External-LSA. Otherwise, the Prefix-SID | |||
| other router will be used. | advertised by any other router will be used. | |||
| 8.4. Advertisement of Adj-SID | 7.4. Advertisement of Adj-SID | |||
| 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 6. | |||
| 8.4.1. Advertisement of Adj-SID on Point-to-Point Links | ||||
| An Adj-SID MAY be advertised for any adjacency on p2p link that is in | ||||
| a state 2-Way or higher. If the adjacency on a p2p link transitions | ||||
| from the FULL state, then the Adj-SID for that adjacency MAY be | ||||
| removed from the area. If the adjacency transitions to a state lower | ||||
| then 2-Way, then the Adj-SID advertisement MUST be removed from the | ||||
| area. | ||||
| 8.4.2. Adjacency SID on Broadcast or NBMA Interfaces | ||||
| Broadcast or NBMA networks in OSPFv3 are represented by a star | ||||
| topology where the Designated Router (DR) is the central point to | ||||
| which all other routers on the broadcast or NBMA network connect. As | ||||
| a result, routers on the broadcast or NBMA network advertise only | ||||
| their adjacency to the DR. Routers that do not act as DR do not form | ||||
| or advertise adjacencies with each other. They do, however, maintain | ||||
| a 2-Way adjacency state with each other and are directly reachable. | ||||
| When Segment Routing is used, each router on the broadcast or NBMA | ||||
| network MAY advertise the Adj-SID for its adjacency to the DR using | ||||
| Adj-SID Sub-TLV as described in Section 7.1. | ||||
| SR capable routers MAY also advertise an Adj-SID for other neighbors | 7.4.1. Advertisement of Adj-SID on Point-to-Point Links | |||
| (e.g. BDR, DR-OTHER) on the broadcast or NBMA network using the LAN | ||||
| ADJ-SID Sub-TLV as described in Section 7.2. | ||||
| 9. IANA Considerations | 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 | ||||
| transitions from the FULL state, then the Adj-SID for that adjacency | ||||
| MAY be removed from the area. If the adjacency transitions to a | ||||
| state lower then 2-Way, then the Adj-SID advertisement MUST be | ||||
| withdrawn from the area. | ||||
| This specification updates several existing OSPF registries. | 7.4.2. Adjacency SID on Broadcast or NBMA Interfaces | |||
| 9.1. OSPF Router Information (RI) TLVs Registry | Broadcast, NBMA, or hybrid [RFC6845] networks in OSPFv3 are | |||
| represented by a star topology where the Designated Router (DR) is | ||||
| the central point to which all other routers on the broadcast, NBMA, | ||||
| or hybrid network connect. As a result, routers on the broadcast, | ||||
| NBMA, or hybrid network advertise only their adjacency to the DR. | ||||
| Routers that do not act as DR do not form or advertise adjacencies | ||||
| with each other. They do, however, maintain 2-Way adjacency state | ||||
| with each other and are directly reachable. | ||||
| o 8 (IANA Preallocated) - SR-Algorithm TLV | When Segment Routing is used, each router on the broadcast, NBMA, or | |||
| hybrid network MAY advertise the Adj-SID for its adjacency to the DR | ||||
| using the Adj-SID Sub-TLV as described in Section 6.1. | ||||
| o 9 (IANA Preallocated) - SID/Label Range TLV | SR capable routers MAY also advertise a LAN-Adj-SID for other | |||
| neighbors (e.g., BDR, DR-OTHER) on the broadcast, NBMA, or hybrid | ||||
| network using the LAN-Adj-SID Sub-TLV as described in Section 6.2. | ||||
| o 12 - SR Local Block Sub-TLV | 8. IANA Considerations | |||
| o 13 - SRMS Preference Sub-TLV | This specification updates several existing OSPFv3 registries. | |||
| 9.2. OSPFv3 Extend-LSA TLV Registry | 8.1. OSPFv3 Extend-LSA TLV Registry | |||
| Following values are allocated: | Following values are allocated: | |||
| o suggested value 9 - OSPF Extended Prefix Range TLV | o suggested value 9 - OSPFv3 Extended Prefix Range TLV | |||
| 9.3. OSPFv3 Extend-LSA Sub-TLV registry | ||||
| o suggested value 3 - SID/Label Sub-TLV | ||||
| o suggested value 4 - Prefix SID Sub-TLV | ||||
| o suggested value 5 - Adj-SID Sub-TLV | 8.2. OSPFv3 Extend-LSA Sub-TLV registry | |||
| o suggested value 6 - LAN Adj-SID Sub-TLV | o 4 - Prefix SID Sub-TLV | |||
| o suggested value 7 - SID/Label Binding Sub-TLV | o 5 - Adj-SID Sub-TLV | |||
| o suggested value 8 - ERO Metric Sub-TLV | o 6 - LAN Adj-SID Sub-TLV | |||
| o suggested value 9 - IPv4 ERO Sub-TLV | o 7 - SID/Label Sub-TLV | |||
| o suggested value 10 - IPv6 ERO Sub-TLV | 9. Security Considerations | |||
| o suggested value 11 - Unnumbered Interface ID ERO Sub-TLV | With the OSPFv3 segment routing extensions defined herein, OSPFv3 | |||
| will now program the MPLS data plane [RFC3031] in addition to the IP | ||||
| data plane. Previously, LDP [RFC5036] or another label distribution | ||||
| mechanism was required to advertise MPLS labels and program the MPLS | ||||
| data plane. | ||||
| o suggested value 12 - IPv4 Backup ERO Sub-TLV | In general, the same types of attacks that can be carried out on the | |||
| IP control plane can be carried out on the MPLS control plane | ||||
| resulting in traffic being misrouted in the respective data planes. | ||||
| However, the latter can be more difficult to detect and isolate. | ||||
| o suggested value 13 - IPv6 Backup ERO Sub-TLV | Existing security extensions as described in [RFC5340] and | |||
| [I-D.ietf-ospf-ospfv3-lsa-extend] apply to these segment routing | ||||
| extensions. While OSPFv3 is under a single administrative domain, | ||||
| there can be deployments where potential attackers have access to one | ||||
| or more networks in the OSPFv3 routing domain. In these deployments, | ||||
| stronger authentication mechanisms such as those specified in | ||||
| [RFC4552] SHOULD be used. | ||||
| o suggested value 14 - Unnumbered Interface ID Backup ERO Sub-TLV | Implementations MUST assure that malformed TLV and Sub-TLV defined in | |||
| this document are detected and do not provide a vulnerability for | ||||
| attackers to crash the OSPFv3 router or routing process. Reception | ||||
| of malformed TLV or Sub-TLV SHOULD be counted and/or logged for | ||||
| further analysis. Logging of malformed TLVs and Sub-TLVs SHOULD be | ||||
| rate-limited to prevent a Denial of Service (DoS) attack (distributed | ||||
| or otherwise) from overloading the OSPFv3 control plane. | ||||
| 10. Security Considerations | 10. Contributors | |||
| Implementations must assure that malformed permutations of the newly | Acee Lindem gave a substantial contribution to the content of this | |||
| defined sub-TLvs do not result in errors which cause hard OSPFv3 | document. | |||
| failures. | ||||
| 11. Acknowledgements | 11. Acknowledgements | |||
| Thanks to Acee Lindem for the detail review of the draft, | ||||
| corrections, as well as discussion about details of the encoding. | ||||
| We would like to thank Anton Smirnov for his contribution. | We would like to thank Anton Smirnov for his contribution. | |||
| Many thanks to Yakov Rekhter, John Drake and Shraddha Hedge for their | ||||
| contribution on earlier definition of the "Binding / MPLS Label TLV". | ||||
| 12. References | 12. References | |||
| 12.1. Normative References | 12.1. Normative References | |||
| [I-D.ietf-ospf-ospfv3-lsa-extend] | ||||
| Lindem, A., Roy, A., Goethals, D., Vallem, V., and F. | ||||
| Baker, "OSPFv3 LSA Extendibility", draft-ietf-ospf-ospfv3- | ||||
| lsa-extend-23 (work in progress), January 2018. | ||||
| [I-D.ietf-spring-conflict-resolution] | ||||
| Ginsberg, L., Psenak, P., Previdi, S., and M. Pilka, | ||||
| "Segment Routing MPLS Conflict Resolution", draft-ietf- | ||||
| spring-conflict-resolution-05 (work in progress), July | ||||
| 2017. | ||||
| [I-D.ietf-spring-segment-routing] | ||||
| Filsfils, C., Previdi, S., Ginsberg, L., Decraene, B., | ||||
| Litkowski, S., and R. Shakir, "Segment Routing | ||||
| Architecture", draft-ietf-spring-segment-routing-15 (work | ||||
| in progress), January 2018. | ||||
| [I-D.ietf-spring-segment-routing-ldp-interop] | ||||
| Filsfils, C., Previdi, S., Bashandy, A., Decraene, B., and | ||||
| S. Litkowski, "Segment Routing interworking with LDP", | ||||
| draft-ietf-spring-segment-routing-ldp-interop-09 (work in | ||||
| progress), September 2017. | ||||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., | [RFC3031] Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol | |||
| and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP | Label Switching Architecture", RFC 3031, | |||
| Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, | DOI 10.17487/RFC3031, January 2001, | |||
| <https://www.rfc-editor.org/info/rfc3209>. | <https://www.rfc-editor.org/info/rfc3031>. | |||
| [RFC3477] Kompella, K. and Y. Rekhter, "Signalling Unnumbered Links | [RFC3101] Murphy, P., "The OSPF Not-So-Stubby Area (NSSA) Option", | |||
| in Resource ReSerVation Protocol - Traffic Engineering | RFC 3101, DOI 10.17487/RFC3101, January 2003, | |||
| (RSVP-TE)", RFC 3477, DOI 10.17487/RFC3477, January 2003, | <https://www.rfc-editor.org/info/rfc3101>. | |||
| <https://www.rfc-editor.org/info/rfc3477>. | ||||
| [RFC4970] Lindem, A., Ed., Shen, N., Vasseur, JP., Aggarwal, R., and | [RFC5036] Andersson, L., Ed., Minei, I., Ed., and B. Thomas, Ed., | |||
| S. Shaffer, "Extensions to OSPF for Advertising Optional | "LDP Specification", RFC 5036, DOI 10.17487/RFC5036, | |||
| Router Capabilities", RFC 4970, DOI 10.17487/RFC4970, July | October 2007, <https://www.rfc-editor.org/info/rfc5036>. | |||
| 2007, <https://www.rfc-editor.org/info/rfc4970>. | ||||
| [RFC5340] Coltun, R., Ferguson, D., Moy, J., and A. Lindem, "OSPF | ||||
| for IPv6", RFC 5340, DOI 10.17487/RFC5340, July 2008, | ||||
| <https://www.rfc-editor.org/info/rfc5340>. | ||||
| [RFC6845] Sheth, N., Wang, L., and J. Zhang, "OSPF Hybrid Broadcast | ||||
| and Point-to-Multipoint Interface Type", RFC 6845, | ||||
| DOI 10.17487/RFC6845, January 2013, | ||||
| <https://www.rfc-editor.org/info/rfc6845>. | ||||
| [RFC7770] Lindem, A., Ed., Shen, N., Vasseur, JP., Aggarwal, R., and | [RFC7770] Lindem, A., Ed., Shen, N., Vasseur, JP., Aggarwal, R., and | |||
| S. Shaffer, "Extensions to OSPF for Advertising Optional | S. Shaffer, "Extensions to OSPF for Advertising Optional | |||
| Router Capabilities", RFC 7770, DOI 10.17487/RFC7770, | Router Capabilities", RFC 7770, DOI 10.17487/RFC7770, | |||
| February 2016, <https://www.rfc-editor.org/info/rfc7770>. | February 2016, <https://www.rfc-editor.org/info/rfc7770>. | |||
| 12.2. Informative References | [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | |||
| Writing an IANA Considerations Section in RFCs", BCP 26, | ||||
| [I-D.filsfils-spring-segment-routing-ldp-interop] | RFC 8126, DOI 10.17487/RFC8126, June 2017, | |||
| Filsfils, C., Previdi, S., Bashandy, A., Decraene, B., | <https://www.rfc-editor.org/info/rfc8126>. | |||
| Litkowski, S., Horneffer, M., Milojevic, I., Shakir, R., | ||||
| Ytti, S., Henderickx, W., Tantsura, J., and E. Crabbe, | ||||
| "Segment Routing interoperability with LDP", draft- | ||||
| filsfils-spring-segment-routing-ldp-interop-02 (work in | ||||
| progress), September 2014. | ||||
| [I-D.filsfils-spring-segment-routing-use-cases] | ||||
| Filsfils, C., Francois, P., Previdi, S., Decraene, B., | ||||
| Litkowski, S., Horneffer, M., Milojevic, I., Shakir, R., | ||||
| Ytti, S., Henderickx, W., Tantsura, J., Kini, S., and E. | ||||
| Crabbe, "Segment Routing Use Cases", draft-filsfils- | ||||
| spring-segment-routing-use-cases-01 (work in progress), | ||||
| October 2014. | ||||
| [I-D.ietf-ospf-ospfv3-lsa-extend] | ||||
| Lindem, A., Roy, A., Goethals, D., Vallem, V., and F. | ||||
| Baker, "OSPFv3 LSA Extendibility", draft-ietf-ospf-ospfv3- | ||||
| lsa-extend-14 (work in progress), April 2017. | ||||
| [I-D.ietf-spring-conflict-resolution] | 12.2. Informative References | |||
| Ginsberg, L., Psenak, P., Previdi, S., and M. Pilka, | ||||
| "Segment Routing Conflict Resolution", draft-ietf-spring- | ||||
| conflict-resolution-01 (work in progress), June 2016. | ||||
| [I-D.ietf-spring-segment-routing] | [I-D.ietf-spring-segment-routing-mpls] | |||
| Filsfils, C., Previdi, S., Bashandy, A., Decraene, B., | Filsfils, C., Previdi, S., Bashandy, A., Decraene, B., | |||
| Litkowski, S., Horneffer, M., Shakir, R., Tantsura, J., | Litkowski, S., and R. Shakir, "Segment Routing with MPLS | |||
| and E. Crabbe, "Segment Routing Architecture", draft-ietf- | data plane", draft-ietf-spring-segment-routing-mpls-11 | |||
| spring-segment-routing-01 (work in progress), February | (work in progress), October 2017. | |||
| 2015. | ||||
| [I-D.minto-rsvp-lsp-egress-fast-protection] | [RFC4552] Gupta, M. and N. Melam, "Authentication/Confidentiality | |||
| Jeganathan, J., Gredler, H., and Y. Shen, "RSVP-TE LSP | for OSPFv3", RFC 4552, DOI 10.17487/RFC4552, June 2006, | |||
| egress fast-protection", draft-minto-rsvp-lsp-egress-fast- | <https://www.rfc-editor.org/info/rfc4552>. | |||
| protection-03 (work in progress), November 2013. | ||||
| [I-D.previdi-6man-segment-routing-header] | [RFC7855] Previdi, S., Ed., Filsfils, C., Ed., Decraene, B., | |||
| Previdi, S., Filsfils, C., Field, B., Leung, I., Linkova, | Litkowski, S., Horneffer, M., and R. Shakir, "Source | |||
| J., Kosugi, T., Vyncke, E., and D. Lebrun, "IPv6 Segment | Packet Routing in Networking (SPRING) Problem Statement | |||
| Routing Header (SRH)", draft-previdi-6man-segment-routing- | and Requirements", RFC 7855, DOI 10.17487/RFC7855, May | |||
| header-08 (work in progress), October 2015. | 2016, <https://www.rfc-editor.org/info/rfc7855>. | |||
| Authors' Addresses | Authors' Addresses | |||
| Peter Psenak (editor) | Peter Psenak (editor) | |||
| Cisco Systems, Inc. | Cisco Systems, Inc. | |||
| Apollo Business Center | Eurovea Centre, Central 3 | |||
| Mlynske nivy 43 | Pribinova Street 10 | |||
| Bratislava 821 09 | Bratislava 81109 | |||
| Slovakia | Slovakia | |||
| Email: ppsenak@cisco.com | Email: ppsenak@cisco.com | |||
| Stefano Previdi (editor) | ||||
| Cisco Systems, Inc. | ||||
| Via Del Serafico, 200 | ||||
| Rome 00142 | ||||
| Italy | ||||
| Email: sprevidi@cisco.com | ||||
| Clarence Filsfils | Clarence Filsfils | |||
| Cisco Systems, Inc. | Cisco Systems, Inc. | |||
| Brussels | Brussels | |||
| Belgium | Belgium | |||
| Email: cfilsfil@cisco.com | Email: cfilsfil@cisco.com | |||
| Stefano Previdi (editor) | ||||
| Individual | ||||
| Email: stefano.previdi@net | ||||
| Hannes Gredler | Hannes Gredler | |||
| RtBrick Inc. | RtBrick Inc. | |||
| Austria | Austria | |||
| Email: hannes@rtbrick.com | Email: hannes@rtbrick.com | |||
| Rob Shakir | Rob Shakir | |||
| Google, Inc. | Google, Inc. | |||
| 1600 Amphitheatre Parkway | 1600 Amphitheatre Parkway | |||
| Mountain View, CA 94043 | Mountain View, CA 94043 | |||
| skipping to change at page 36, line 24 ¶ | skipping to change at page 28, line 4 ¶ | |||
| Email: hannes@rtbrick.com | Email: hannes@rtbrick.com | |||
| Rob Shakir | Rob Shakir | |||
| Google, Inc. | Google, Inc. | |||
| 1600 Amphitheatre Parkway | 1600 Amphitheatre Parkway | |||
| Mountain View, CA 94043 | Mountain View, CA 94043 | |||
| US | US | |||
| Email: robjs@google.com | Email: robjs@google.com | |||
| Wim Henderickx | Wim Henderickx | |||
| Nokia | Nokia | |||
| Copernicuslaan 50 | Copernicuslaan 50 | |||
| Antwerp 2018 | Antwerp 2018 | |||
| BE | BE | |||
| Email: wim.henderickx@nokia.com | Email: wim.henderickx@nokia.com | |||
| Jeff Tantsura | Jeff Tantsura | |||
| Individual | Nuage Networks | |||
| US | US | |||
| Email: jefftant.ietf@gmail.com | Email: jefftant.ietf@gmail.com | |||
| End of changes. 206 change blocks. | ||||
| 1058 lines changed or deleted | 620 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/ | ||||