draft-ietf-ospf-segment-routing-extensions-27.txt   rfc8665.txt 
Open Shortest Path First IGP P. Psenak, Ed. Internet Engineering Task Force (IETF) P. Psenak, Ed.
Internet-Draft S. Previdi, Ed. Request for Comments: 8665 S. Previdi, Ed.
Intended status: Standards Track C. Filsfils Category: Standards Track C. Filsfils
Expires: June 6, 2019 Cisco Systems, Inc. ISSN: 2070-1721 Cisco Systems, Inc.
H. Gredler H. Gredler
RtBrick Inc. RtBrick Inc.
R. Shakir R. Shakir
Google, Inc. Google, Inc.
W. Henderickx W. Henderickx
Nokia Nokia
J. Tantsura J. Tantsura
Apstra, Inc. Apstra, Inc.
December 3, 2018 December 2019
OSPF Extensions for Segment Routing OSPF Extensions for Segment Routing
draft-ietf-ospf-segment-routing-extensions-27
Abstract Abstract
Segment Routing (SR) allows a flexible definition of end-to-end paths Segment Routing (SR) allows a flexible definition of end-to-end paths
within IGP topologies by encoding paths as sequences of topological within IGP topologies by encoding paths as sequences of topological
sub-paths, called "segments". These segments are advertised by the subpaths called "segments". These segments are advertised by the
link-state routing protocols (IS-IS and OSPF). link-state routing protocols (IS-IS and OSPF).
This draft describes the OSPFv2 extensions required for Segment This document describes the OSPFv2 extensions required for Segment
Routing. Routing.
Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
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 is an Internet Standards Track document.
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering This document is a product of the Internet Engineering Task Force
Task Force (IETF). Note that other groups may also distribute (IETF). It represents the consensus of the IETF community. It has
working documents as Internet-Drafts. The list of current Internet- received public review and has been approved for publication by the
Drafts is at https://datatracker.ietf.org/drafts/current/. Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 7841.
Internet-Drafts are draft documents valid for a maximum of six months Information about the current status of this document, any errata,
and may be updated, replaced, or obsoleted by other documents at any and how to provide feedback on it may be obtained at
time. It is inappropriate to use Internet-Drafts as reference https://www.rfc-editor.org/info/rfc8665.
material or to cite them other than as "work in progress."
This Internet-Draft will expire on June 6, 2019.
Copyright Notice Copyright Notice
Copyright (c) 2018 IETF Trust and the persons identified as the Copyright (c) 2019 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
2. Segment Routing Identifiers . . . . . . . . . . . . . . . . . 3 1.1. Requirements Language
2.1. SID/Label Sub-TLV . . . . . . . . . . . . . . . . . . . . 4 2. Segment Routing Identifiers
3. Segment Routing Capabilities . . . . . . . . . . . . . . . . 4 2.1. SID/Label Sub-TLV
3.1. SR-Algorithm TLV . . . . . . . . . . . . . . . . . . . . 4 3. Segment Routing Capabilities
3.2. SID/Label Range TLV . . . . . . . . . . . . . . . . . . . 6 3.1. SR-Algorithm TLV
3.3. SR Local Block TLV . . . . . . . . . . . . . . . . . . . 8 3.2. SID/Label Range TLV
3.4. SRMS Preference TLV . . . . . . . . . . . . . . . . . . . 10 3.3. SR Local Block TLV
4. OSPF Extended Prefix Range TLV . . . . . . . . . . . . . . . 11 3.4. SRMS Preference TLV
5. Prefix SID Sub-TLV . . . . . . . . . . . . . . . . . . . . . 13 4. OSPF Extended Prefix Range TLV
6. Adjacency Segment Identifier (Adj-SID) . . . . . . . . . . . 16 5. Prefix-SID Sub-TLV
6.1. Adj-SID Sub-TLV . . . . . . . . . . . . . . . . . . . . . 17 6. Adjacency Segment Identifier (Adj-SID)
6.2. LAN Adj-SID Sub-TLV . . . . . . . . . . . . . . . . . . . 18 6.1. Adj-SID Sub-TLV
7. Elements of Procedure . . . . . . . . . . . . . . . . . . . . 19 6.2. LAN Adj-SID Sub-TLV
7.1. Intra-area Segment routing in OSPFv2 . . . . . . . . . . 19 7. Elements of Procedure
7.2. Inter-area Segment routing in OSPFv2 . . . . . . . . . . 20 7.1. Intra-area Segment Routing in OSPFv2
7.3. Segment Routing for External Prefixes . . . . . . . . . . 21 7.2. Inter-area Segment Routing in OSPFv2
7.4. Advertisement of Adj-SID . . . . . . . . . . . . . . . . 22 7.3. Segment Routing for External Prefixes
7.4.1. Advertisement of Adj-SID on Point-to-Point Links . . 22 7.4. Advertisement of Adj-SID
7.4.2. Adjacency SID on Broadcast or NBMA Interfaces . . . . 22 7.4.1. Advertisement of Adj-SID on Point-to-Point Links
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 7.4.2. Adjacency SID on Broadcast or NBMA Interfaces
8.1. OSPF Router Information (RI) TLVs Registry . . . . . . . 22 8. IANA Considerations
8.2. OSPFv2 Extended Prefix Opaque LSA TLVs Registry . . . . . 23 8.1. OSPF Router Information (RI) TLVs Registry
8.3. OSPFv2 Extended Prefix TLV Sub-TLVs Registry . . . . . . 23 8.2. OSPFv2 Extended Prefix Opaque LSA TLVs Registry
8.4. OSPFv2 Extended Link TLV Sub-TLVs Registry . . . . . . . 23 8.3. OSPFv2 Extended Prefix TLV Sub-TLVs Registry
8.5. IGP Algorithm Type Registry . . . . . . . . . . . . . . . 23 8.4. OSPFv2 Extended Link TLV Sub-TLVs Registry
9. Implementation Status . . . . . . . . . . . . . . . . . . . . 24 8.5. IGP Algorithm Types Registry
10. Security Considerations . . . . . . . . . . . . . . . . . . . 25 9. TLV/Sub-TLV Error Handling
11. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 26 10. Security Considerations
12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 26 11. References
13. References . . . . . . . . . . . . . . . . . . . . . . . . . 26 11.1. Normative References
13.1. Normative References . . . . . . . . . . . . . . . . . . 26 11.2. Informative References
13.2. Informative References . . . . . . . . . . . . . . . . . 27 Acknowledgements
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 28 Contributors
Authors' Addresses
1. Introduction 1. Introduction
Segment Routing (SR) allows a flexible definition of end-to-end paths Segment Routing (SR) allows a flexible definition of end-to-end paths
within IGP topologies by encoding paths as sequences of topological within IGP topologies by encoding paths as sequences of topological
sub-paths, called "segments". These segments are advertised by the subpaths called "segments". These segments are advertised by the
link-state routing protocols (IS-IS and OSPF). Prefix segments link-state routing protocols (IS-IS and OSPF). Prefix segments
represent an ECMP-aware shortest-path to a prefix (or a node), as per represent an ECMP-aware shortest path to a prefix (or a node), as per
the state of the IGP topology. Adjacency segments represent a hop the state of the IGP topology. Adjacency segments represent a hop
over a specific adjacency between two nodes in the IGP. A prefix over a specific adjacency between two nodes in the IGP. A prefix
segment is typically a multi-hop path while an adjacency segment, in segment is typically a multi-hop path while an adjacency segment, in
most cases, is a one-hop path. SR's control-plane can be applied to most cases, is a one-hop path. SR's control plane can be applied to
both IPv6 and MPLS data-planes, and does not require any additional both IPv6 and MPLS data planes, and it does not require any
signalling (other than IGP extensions). The IPv6 data plane is out additional signaling (other than IGP extensions). The IPv6 data
of the scope of this specification - it is not applicable to OSPFv2 plane is out of the scope of this specification; it is not applicable
which only supports the IPv4 address-family. When used in MPLS to OSPFv2, which only supports the IPv4 address family. When used in
networks, SR paths do not require any LDP or RSVP-TE signalling. MPLS networks, SR paths do not require any LDP or RSVP-TE signaling.
However, SR can interoperate in the presence of LSPs established with However, SR can interoperate in the presence of LSPs established with
RSVP or LDP. RSVP or LDP.
There are additional segment types, e.g., Binding SID defined in There are additional segment types, e.g., Binding Segment Identifier
[I-D.ietf-spring-segment-routing]. (SID) defined in [RFC8402].
This draft describes the OSPF extensions required for Segment This document describes the OSPF extensions required for Segment
Routing. Routing.
Segment Routing architecture is described in Segment Routing architecture is described in [RFC8402].
[I-D.ietf-spring-segment-routing].
Segment Routing use cases are described in [RFC7855]. Segment Routing use cases are described in [RFC7855].
1.1. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
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.
Extended Prefix/Link Opaque LSAs defined in [RFC7684] are used for Extended Prefix/Link Opaque Link State Advertisements (LSAs) defined
advertisements of the various SID types. in [RFC7684] are used for advertisements of the various SID types.
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 Sub-TLV has associated with a prefix or adjacency. The SID/Label Sub-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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID/Label (variable) | | SID/Label (variable) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
Type: 1 Type: 1
Length: Variable, 3 or 4 octet
SID/Label: If length is set to 3, then the 20 rightmost bits Length: 3 or 4 octets
represent a label. If length is set to 4, then the value
represents a 32-bit SID.
The receiving router MUST ignore the SID/Label Sub-TLV if the SID/Label: If the length is set to 3, then the 20 rightmost bits
length is other then 3 or 4. represent a label. If the length is set to 4, then the value
represents a 32-bit SID.
3. Segment Routing Capabilities 3. Segment Routing Capabilities
Segment Routing requires some additional router capabilities to be Segment Routing requires some additional router capabilities to be
advertised to other routers in the area. advertised to other routers in the area.
These SR capabilities are advertised in the Router Information Opaque These SR capabilities are advertised in the Router Information Opaque
LSA (defined in [RFC7770]). The TLVs defined below are applicable to LSA (defined in [RFC7770]). The TLVs defined below are applicable to
both OSPFv2 and OSPFv3; see also both OSPFv2 and OSPFv3; see also [RFC8666].
[I-D.ietf-ospf-ospfv3-segment-routing-extensions]
3.1. SR-Algorithm TLV 3.1. SR-Algorithm TLV
The SR-Algorithm TLV is a top-level TLV of the Router Information The SR-Algorithm TLV is a top-level TLV of the Router Information
Opaque LSA (defined in [RFC7770]). Opaque LSA (defined in [RFC7770]).
The SR-Algorithm TLV is optional. It SHOULD only be advertised once The SR-Algorithm TLV is optional. It SHOULD only be advertised once
in the Router Information Opaque LSA. If the SR-Algorithm TLV is not in the Router Information Opaque LSA. If the SR-Algorithm TLV is not
advertised by the node, such node is considered as not being segment advertised by the node, such a node is considered as not being
routing capable. Segment Routing capable.
An SR Router can use various algorithms when calculating reachability An SR Router can use various algorithms when calculating reachability
to OSPF routers or prefixes in an OSPF area. Examples of these to OSPF routers or prefixes in an OSPF area. Examples of these
algorithms are metric based Shortest Path First (SPF), various algorithms are metric-based Shortest Path First (SPF), various
flavors of Constrained SPF, etc. The SR-Algorithm TLV allows a flavors of Constrained SPF, etc. The SR-Algorithm TLV allows a
router to advertise the algorithms currently used by the router to router to advertise the algorithms currently used by the router to
other routers in an OSPF area. The SR-Algorithm TLV has following other routers in an OSPF area. The SR-Algorithm TLV has the
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Algorithm 1 | Algorithm... | Algorithm n | | | Algorithm 1 | Algorithm... | Algorithm n | |
+- -+ +- -+
| | | |
+ + + +
where: where:
Type: 8 Type: 8
Variable, in octets, dependent on number of algorithms advertised. Length: Variable, in octets, depending on the number of
algorithms advertised
Algorithm: Single octet identifying the algorithm. The following Algorithm: Single octet identifying the algorithm. The following
values are defined by this document: values are defined by this document:
0: Shortest Path First (SPF) algorithm based on link metric. 0: Shortest Path First (SPF) algorithm based on link metric.
This is the standard shortest path algorithm as computed by the This is the standard shortest path algorithm as computed
OSPF protocol. Consistent with the deployed practice for link- by the OSPF protocol. Consistent with the deployed
state protocols, Algorithm 0 permits any node to overwrite the practice for link-state protocols, Algorithm 0 permits
SPF path with a different path based on its local policy. If any node to overwrite the SPF path with a different path
the SR-Algorithm TLV is advertised, Algorithm 0 MUST be based on its local policy. If the SR-Algorithm TLV is
included. advertised, Algorithm 0 MUST be 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
the SPF routing decision. Local policy at the node claiming honor the SPF routing decision. Local policy at the node
support for Algorithm 1 MUST NOT alter the SPF paths computed claiming support for Algorithm 1 MUST NOT alter the SPF
by Algorithm 1. paths computed by Algorithm 1.
When multiple SR-Algorithm TLVs are received from a given router, the When multiple SR-Algorithm TLVs are received from a given router, the
receiver MUST use the first occurrence of the TLV in the Router receiver MUST use the first occurrence of the TLV in the Router
Information LSA. If the SR-Algorithm TLV appears in multiple Router Information Opaque LSA. If the SR-Algorithm TLV appears in multiple
Information LSAs that have different flooding scopes, the SR- Router Information Opaque LSAs that have different flooding scopes,
Algorithm TLV in the Router Information LSA with the area-scoped the SR-Algorithm TLV in the Router Information Opaque LSA with the
flooding scope MUST be used. If the SR-Algorithm TLV appears in area-scoped flooding scope MUST be used. If the SR-Algorithm TLV
multiple Router Information LSAs that have the same flooding scope, appears in multiple Router Information Opaque LSAs that have the same
the SR-Algorithm TLV in the Router Information (RI) LSA with the flooding scope, the SR-Algorithm TLV in the Router Information (RI)
numerically smallest Instance ID MUST be used and subsequent Opaque LSA with the numerically smallest Instance ID MUST be used and
instances of the SR-Algorithm TLV MUST be ignored. subsequent instances of the SR-Algorithm TLV MUST be ignored.
The RI LSA can be advertised at any of the defined opaque flooding The RI LSA can be advertised at any of the defined opaque flooding
scopes (link, area, or Autonomous System (AS)). For the purpose of scopes (link, area, or Autonomous System (AS)). For the purpose of
SR-Algorithm TLV advertisement, area-scoped flooding is REQUIRED. SR-Algorithm TLV advertisement, area-scoped flooding is REQUIRED.
3.2. SID/Label Range TLV 3.2. SID/Label Range TLV
Prefix SIDs MAY be advertised in a form of an index as described in Prefix-SIDs MAY be advertised in the form of an index as described in
Section 5. Such index defines the offset in the SID/Label space Section 5. Such an index defines the offset in the SID/Label space
advertised by the router. The SID/Label Range TLV is used to advertised by the router. The SID/Label Range TLV is used to
advertise such SID/Label space. advertise such SID/Label space.
The SID/Label Range TLV is a top-level TLV of the Router Information The SID/Label Range TLV is a top-level TLV of the Router Information
Opaque LSA (defined in [RFC7770]). Opaque LSA (defined in [RFC7770]).
The SID/Label Range TLV MAY appear multiple times and has the The SID/Label Range TLV MAY appear multiple times and has the
following format: following format:
0 1 2 3 0 1 2 3
skipping to change at page 6, line 40 skipping to change at line 269
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Range Size | Reserved | | Range Size | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sub-TLVs (variable) | | Sub-TLVs (variable) |
+- -+ +- -+
| | | |
+ + + +
where: where:
Type: 9 Type: 9
Length: Variable, in octets, dependent on Sub-TLVs. Length: Variable, in octets, depending on the sub-TLVs
Range Size: 3-octet SID/label range size (i.e., the number of SIDs Range Size: 3-octet SID/label range size (i.e., the number of
or labels in the range including the first SID/label). It MUST be SIDs or labels in the range including the first SID/label). It
greater than 0. MUST be greater than 0.
Reserved: SHOULD be set to 0 on transmission and MUST be ignored Reserved: SHOULD be set to 0 on transmission and MUST be ignored
on reception. on reception
Initially, the only supported Sub-TLV is the SID/Label Sub-TLV as 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 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 the SID/Label Range TLV. The SID/Label advertised in the SID/Label
Sub-TLV represents the first SID/Label in the advertised range. 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 Only a single SID/Label Sub-TLV MAY be advertised in the SID/Label
TLV. If more then one SID/Label Sub-TLVs are present, the SID/Label Range TLV. If more than one SID/Label Sub-TLV is present, the SID/
Range TLV MUST be ignored. Label Range TLV MUST be ignored.
Multiple occurrences of the SID/Label Range TLV MAY be advertised, in Multiple occurrences of the SID/Label Range TLV MAY be advertised in
order to advertise multiple ranges. In such case: order to advertise multiple ranges. In such a case:
o The originating router MUST encode each range into a different * 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/ * The originating router decides the order in which the set of SID/
Label Range TLVs are advertised inside the Router Information Label Range TLVs are advertised inside the Router Information
Opaque LSA. The originating router MUST ensure the order is the Opaque LSA. The originating router MUST ensure the order is the
same after a graceful restart (using checkpointing, non-volatile same after a graceful restart (using checkpointing, nonvolatile
storage, or any other mechanism) in order to assure the SID/label storage, or any other mechanism) in order to ensure the SID/Label
range and SID index correspondence is preserved across graceful range and SID index correspondence is preserved across graceful
restarts. restarts.
o The receiving router MUST adhere to the order in which the ranges * The receiving router MUST adhere to the order in which the ranges
are advertised when calculating a SID/label from a SID index. are advertised when calculating a SID/Label from a SID index.
o The originating router MUST NOT advertise overlapping ranges. * The originating router MUST NOT advertise overlapping ranges.
o When a router receives multiple overlapping ranges, it MUST * When a router receives multiple overlapping ranges, it MUST
conform to the procedures defined in conform to the procedures defined in [RFC8660].
[I-D.ietf-spring-segment-routing-mpls].
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: Range Size: 100 SID/Label Sub-TLV: 100 Range 1: Range Size: 100 SID/Label Sub-TLV: 100
Range 1: Range Size: 100 SID/Label Sub-TLV: 1000 Range 1: Range Size: 100 SID/Label Sub-TLV: 1000
Range 1: Range Size: 100 SID/Label Sub-TLV: 500 Range 1: Range Size: 100 SID/Label Sub-TLV: 500
The receiving routers concatenate the ranges and build the Segment The receiving routers concatenate the ranges and build the Segment
Routing Global Block (SRGB) as follows: Routing Global Block (SRGB) as follows:
SRGB = [100, 199] SRGB = [100, 199]
[1000, 1099] [1000, 1099]
[500, 599] [500, 599]
The indexes span multiple ranges: The indexes span multiple ranges:
index=0 means label 100 index 0 means label 100
... ...
index 99 means label 199 index 99 means label 199
index 100 means label 1000 index 100 means label 1000
index 199 means label 1099 index 199 means label 1099
... ...
index 200 means label 500 index 200 means label 500
... ...
The RI LSA can be advertised at any of the defined flooding scopes The RI LSA can be advertised at any of the defined flooding scopes
(link, area, or autonomous system (AS)). For the purpose of SID/ (link, area, or autonomous system (AS)). For the purpose of SID/
Label Range TLV advertisement, area-scoped flooding is REQUIRED. Label Range TLV advertisement, area-scoped flooding is REQUIRED.
3.3. SR Local Block TLV 3.3. SR Local Block TLV
The SR Local Block TLV (SRLB TLV) contains the range of labels the The SR Local Block TLV (SRLB TLV) contains the range of labels the
node has reserved for local SIDs. SIDs from the SRLB MAY be used for node has reserved for Local SIDs. SIDs from the SRLB MAY be used for
Adjacency-SIDs, but also by components other than the OSPF protocol. Adjacency SIDs but also by components other than the OSPF protocol.
As an example, an application or a controller can instruct the router As an example, an application or a controller can instruct the router
to allocate a specific local SID. Some controllers or applications to allocate a specific Local SID. Some controllers or applications
can use the control plane to discover the available set of local SIDs 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 on a particular router. In such cases, the SRLB is advertised in the
control plane. The requirement to advertise the SRLB is further control plane. The requirement to advertise the SRLB is further
described in [I-D.ietf-spring-segment-routing-mpls]. The SRLB TLV is described in [RFC8660]. The SRLB TLV is used to advertise the SRLB.
used to advertise the SRLB.
The SRLB TLV is a top-level TLV of the Router Information Opaque LSA The SRLB TLV is a top-level TLV of the Router Information Opaque LSA
(defined in [RFC7770]). (defined in [RFC7770]).
The SRLB TLV MAY appear multiple times in the Router Information The SRLB TLV MAY appear multiple times in the Router Information
Opaque LSA and has the following format: Opaque LSA and has the following format:
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at page 9, line 19 skipping to change at line 374
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Range Size | Reserved | | Range Size | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sub-TLVs (variable) | | Sub-TLVs (variable) |
+- -+ +- -+
| | | |
+ + + +
where: where:
Type: 14 Type: 14
Length: Variable, in octets, dependent on Sub-TLVs. Length: Variable, in octets, depending on the sub-TLVs
Range Size: 3-octet SID/label range size (i.e., the number of SIDs Range Size: 3-octet SID/Label range size (i.e., the number of
or labels in the range including the first SID/label). It MUST be SIDs or labels in the range including the first SID/Label). It
greater than 0. MUST be greater than 0.
Reserved: SHOULD be set to 0 on transmission and MUST be ignored Reserved: SHOULD be set to 0 on transmission and MUST be ignored
on reception. on reception
Initially, the only supported Sub-TLV is the SID/Label Sub-TLV as 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 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 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.
Only a single SID/Label Sub-TLV MAY be advertised in the SRLB TLV. Only a single SID/Label Sub-TLV MAY be advertised in the SRLB TLV.
If more then one SID/Label Sub-TLVs are present, the SRLB TLV MUST be If more than one SID/Label Sub-TLV is present, the SRLB TLV MUST be
ignored. 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 collisions between SRLB allocation. This is required to avoid collisions between
allocation instructions. allocation instructions.
Within the context of OSPF, the reporting of local SIDs is done Within the context of OSPF, the reporting of Local SIDs is done
through OSPF Sub-TLVs such as the Adjacency-SID (Section 6). through OSPF sub-TLVs, such as the Adjacency SID (Section 6).
However, the reporting of allocated local SIDs can also be done However, the reporting of allocated Local SIDs can also be done
through other means and protocols which are outside the scope of this through other means and protocols, which are outside the scope of
document. this 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 and not
not advertised in the SRLB TLV. For example, it is possible that an 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 RI LSA can be advertised at any of the defined flooding scopes The RI LSA can be advertised at any of the defined flooding scopes
(link, area, or autonomous system (AS)). For the purpose of SRLB TLV (link, area, or autonomous system (AS)). For the purpose of SRLB TLV
advertisement, area-scoped flooding is REQUIRED. advertisement, area-scoped flooding is REQUIRED.
3.4. SRMS Preference TLV 3.4. SRMS Preference TLV
The Segment Routing Mapping Server Preference TLV (SRMS Preference The Segment Routing Mapping Server Preference TLV (SRMS Preference
TLV) is used to advertise a preference associated with the node that TLV) is used to advertise a preference associated with the node that
acts as an SR Mapping Server. The role of an SRMS is described in acts as an SR Mapping Server. The role of an SRMS is described in
[I-D.ietf-spring-segment-routing-ldp-interop]. SRMS preference is [RFC8661]. SRMS preference is defined in [RFC8661].
defined in [I-D.ietf-spring-segment-routing-ldp-interop].
The SRMS Preference TLV is a top-level TLV of the Router Information The SRMS Preference TLV is a top-level TLV of the Router Information
Opaque LSA (defined in [RFC7770]). Opaque LSA (defined in [RFC7770]).
The SRMS Preference TLV MAY only be advertised once in the Router The SRMS Preference TLV MAY only be advertised once in the Router
Information Opaque LSA and has the following format: Information Opaque LSA and has the following format:
0 1 2 3 0 1 2 3
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: 15 Type: 15
Length: 4 octets Length: 4 octets
Preference: 1 octet. SRMS preference value from 0 to 255. Preference: 1 octet, with an SRMS preference value from 0 to 255
Reserved: SHOULD be set to 0 on transmission and MUST be ignored Reserved: SHOULD be set to 0 on transmission and MUST be ignored
on reception. on reception
When multiple SRMS Preference TLVs are received from a given router, When multiple SRMS Preference TLVs are received from a given router,
the receiver MUST use the first occurrence of the TLV in the Router the receiver MUST use the first occurrence of the TLV in the Router
Information LSA. If the SRMS Preference TLV appears in multiple Information Opaque LSA. If the SRMS Preference TLV appears in
Router Information LSAs that have different flooding scopes, the SRMS multiple Router Information Opaque LSAs that have different flooding
Preference TLV in the Router Information LSA with the narrowest scopes, the SRMS Preference TLV in the Router Information Opaque LSA
flooding scope MUST be used. If the SRMS Preference TLV appears in with the narrowest flooding scope MUST be used. If the SRMS
multiple Router Information LSAs that have the same flooding scope, Preference TLV appears in multiple Router Information Opaque LSAs
the SRMS Preference TLV in the Router Information LSA with the that have the same flooding scope, the SRMS Preference TLV in the
numerically smallest Instance ID MUST be used and subsequent Router Information Opaque LSA with the numerically smallest Instance
instances of the SRMS Preference TLV MUST be ignored. ID MUST be used and subsequent instances of the SRMS Preference TLV
MUST be ignored.
The RI LSA can be advertised at any of the defined flooding scopes The RI LSA can be advertised at any of the defined flooding scopes
(link, area, or autonomous system (AS)). For the purpose of the SRMS (link, area, or autonomous system (AS)). For the purpose of the SRMS
Preference TLV advertisement, AS-scoped flooding SHOULD be used. Preference TLV advertisement, AS-scoped flooding SHOULD be used.
This is because SRMS servers can be located in a different area then This is because SRMS servers can be located in a different area than
consumers of the SRMS advertisements. If the SRMS advertisements consumers of the SRMS advertisements. If the SRMS advertisements
from the SRMS server are only used inside the SRMS server's area, from the SRMS server are only used inside the SRMS server's area,
area-scoped flooding MAY be used. area-scoped flooding MAY be used.
4. OSPF Extended Prefix Range TLV 4. OSPF Extended Prefix Range TLV
In some cases it is useful to advertise attributes for a range of In some cases, it is useful to advertise attributes for a range of
prefixes. The Segment Routing Mapping Server, which is described in prefixes. The SR Mapping Server, which is described in [RFC8661], is
[I-D.ietf-spring-segment-routing-ldp-interop], is an example where we an example where we need a single advertisement to advertise SIDs for
need a single advertisement to advertise SIDs for multiple prefixes multiple prefixes from a contiguous address range.
from a contiguous address range.
The OSPF Extended Prefix Range TLV, which is a top level TLV of the The OSPF Extended Prefix Range TLV, which is a top-level TLV of the
Extended Prefix LSA described in [RFC7684] is defined for this Extended Prefix LSA described in [RFC7684] is defined for this
purpose. purpose.
Multiple OSPF Extended Prefix Range TLVs MAY be advertised in each Multiple OSPF Extended Prefix Range TLVs MAY be advertised in each
OSPF Extended Prefix Opaque LSA, but all prefix ranges included in a OSPF Extended Prefix Opaque LSA, but all prefix ranges included in a
single OSPF Extended Prefix Opaque LSA MUST have the same flooding single OSPF Extended Prefix Opaque LSA MUST have the same flooding
scope. The OSPF Extended Prefix Range TLV has the following format: scope. The OSPF Extended Prefix Range TLV has the following format:
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
skipping to change at page 12, line 5 skipping to change at line 503
| Flags | Reserved | | Flags | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Address Prefix (variable) | | Address Prefix (variable) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sub-TLVs (variable) | | Sub-TLVs (variable) |
+- -+ +- -+
| | | |
where: where:
Type: 2 Type: 2
Length: Variable, in octets, dependent on Sub-TLVs. Length: Variable, in octets, depending on the sub-TLVs
Prefix length: Length of prefix in bits. Prefix Length: Length of prefix in bits
AF: Address family for the prefix. Currently, the only supported AF: Address family for the prefix. Currently, the only supported
value is 0 for IPv4 unicast. The inclusion of address family in value is 0 for IPv4 unicast. The inclusion of address family
this TLV allows for future extension. in this TLV allows for future extension.
Range size: Represents the number of prefixes that are covered by Range Size: Represents the number of prefixes that are covered by
the advertisement. The Range Size MUST NOT exceed the number of the advertisement. The Range Size MUST NOT exceed the number
prefixes that could be satisfied by the prefix length without of prefixes that could be satisfied by the Prefix Length
including the IPv4 multicast address range (224.0.0.0/3). without including the IPv4 multicast address range
(224.0.0.0/3).
Flags: Single octet field. The following flags are defined: Flags: Single-octet field. The following flags are defined:
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+--+--+--+--+--+--+--+--+ +--+--+--+--+--+--+--+--+
|IA| | | | | | | | |IA| | | | | | | |
+--+--+--+--+--+--+--+--+ +--+--+--+--+--+--+--+--+
where: where:
IA-Flag: Inter-Area flag. If set, advertisement is of inter- IA-Flag: Inter-Area Flag. If set, advertisement is of
area type. An ABR that is advertising the OSPF Extended Prefix inter-area type. An Area Border Router (ABR) that is
Range TLV between areas MUST set this bit. advertising the OSPF Extended 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
TLVs between areas as follows: Range TLVs between areas as follows:
An ABR only propagates an inter-area Prefix Range An ABR only propagates an inter-area Prefix Range
advertisement from the backbone area to connected non- advertisement from the backbone area to connected
backbone areas if the advertisement is considered to be the nonbackbone areas if the advertisement is considered
best one. The following rules are used to select the best to be the best one. The following rules are used to
range from the set of advertisements for the same Prefix select the best range from the set of advertisements
Range: for the same Prefix Range:
An ABR always prefers intra-area Prefix Range An ABR always prefers intra-area Prefix Range
advertisements over inter-area advertisements. advertisements over inter-area advertisements.
An ABR does not consider inter-area Prefix Range An ABR does not consider inter-area Prefix Range
advertisements coming from non-backbone areas. advertisements coming from nonbackbone areas.
Reserved: SHOULD be set to 0 on transmission and MUST be ignored Reserved: SHOULD be set to 0 on transmission and MUST be ignored
on reception. on reception
Address Prefix: For the address family IPv4 unicast, the prefix Address Prefix: For the address family IPv4 unicast, the prefix
itself is encoded as a 32-bit value. The default route is itself is encoded as a 32-bit value. The default route is
represented by a prefix of length 0. Prefix encoding for other represented by a prefix of length 0. Prefix encoding for other
address families is beyond the scope of this specification. 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 OSPF Extended Prefix TLV The Prefix-SID Sub-TLV is a sub-TLV of the OSPF Extended Prefix TLV
described in [RFC7684] and the OSPF Extended Prefix Range TLV described in [RFC7684] and the OSPF Extended Prefix Range TLV
described in Section 4. It MAY appear more than once in the parent described in Section 4. It MAY appear more than once in the parent
TLV and has the following format: TLV and has the following format:
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Reserved | MT-ID | Algorithm | | Flags | Reserved | MT-ID | Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID/Index/Label (variable) | | SID/Index/Label (variable) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
Type: 2 Type: 2
Length: 7 or 8 octets, dependent on the V-flag Length: 7 or 8 octets, depending on the V-Flag
Flags: Single octet field. The following flags are defined: Flags: Single-octet field. The following flags are defined:
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+--+--+--+--+--+--+--+--+ +--+--+--+--+--+--+--+--+
| |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 (Penultimate Hop Popping) Flag. If set,
NOT pop the Prefix-SID before delivering packets to the node then the penultimate hop MUST NOT pop the Prefix-SID
that advertised the Prefix-SID. before delivering packets to the node that advertised the
Prefix-SID.
M-Flag: Mapping Server Flag. If set, the SID was advertised by M-Flag: Mapping Server Flag. If set, the SID was
a Segment Routing Mapping Server as described in advertised by an SR Mapping Server as described in
[I-D.ietf-spring-segment-routing-ldp-interop]. [RFC8661].
E-Flag: Explicit-Null Flag. If set, any upstream neighbor of E-Flag: Explicit Null Flag. If set, any upstream neighbor
the Prefix-SID originator MUST replace the Prefix-SID with the of the Prefix-SID originator MUST replace the Prefix-SID
Explicit-NULL label (0 for IPv4) before forwarding the packet. with the Explicit NULL label (0 for IPv4) before
forwarding the packet.
V-Flag: Value/Index Flag. If set, then the Prefix-SID carries V-Flag: Value/Index Flag. If set, then the Prefix-SID
an absolute value. If not set, then the Prefix-SID carries an carries an absolute value. If not set, then the Prefix-
index. SID carries an index.
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
then the value/index carried by this Sub-TLV has global set, then the value/index carried by this sub-TLV has
significance. global 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.
Reserved: SHOULD be set to 0 on transmission and MUST be ignored Reserved: SHOULD be set to 0 on transmission and MUST be ignored
on reception. on reception
MT-ID: Multi-Topology ID (as defined in [RFC4915]). MT-ID: Multi-Topology ID (as defined in [RFC4915])
Algorithm: Single octet identifying the algorithm the Prefix-SID Algorithm: Single octet identifying the algorithm the Prefix-SID
is associated with as defined in Section 3.1. 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 the remote node has not advertised in the
SR-Algorithm Sub-TLV (Section 3.1) MUST ignore the Prefix-SID Sub- SR-Algorithm TLV (Section 3.1) MUST ignore the Prefix-SID Sub-
TLV. TLV.
SID/Index/Label: According to the V and L flags, it contains: SID/Index/Label: According to the V- and L-Flags, it contains:
V-flag is set to 0 and L-flag is set to 0: The SID/Index/Label V-Flag is set to 0 and L-Flag is set to 0: The SID/Index/
field is a 4 octet index defining the offset in the SID/Label Label field is a 4-octet index defining the offset in the
space advertised by this router SID/Label space advertised by this router.
V-flag is set to 1 and L-flag is set to 1: The SID/Index/Label V-Flag is set to 1 and L-Flag is set to 1: The SID/Index/
field is a 3 octet local label where the 20 rightmost bits are Label field is a 3-octet local label where the 20 rightmost
used for encoding the label value. bits are used for encoding the label value.
All other combinations of V-flag and L-flag are invalid and any All other combinations of V-Flag and L-Flag are invalid and
SID advertisement received with an invalid setting for V and L any SID Advertisement received with an invalid setting for
flags MUST be ignored. V- and L-Flags MUST be ignored.
If an OSPF router advertises multiple Prefix-SIDs for the same If an OSPF router advertises multiple Prefix-SIDs for the same
prefix, topology and algorithm, all of them MUST be ignored. prefix, topology, and algorithm, all of them MUST be ignored.
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, as described below, the E, NP and M flags take into account, as described below, the E-, NP-, and M-Flags
advertised by the next-hop router if that router advertised the SID advertised by the next-hop router if that router advertised the SID
for the prefix. This MUST be done regardless of whether the next-hop for the prefix. This MUST be done regardless of whether the next-hop
router contributes to the best path to the prefix. router contributes to the best path to the prefix.
The NP-Flag (No-PHP) MUST be set and the E-flag MUST be clear for The NP-Flag (No-PHP) MUST be set and the E-Flag MUST be clear for
Prefix-SIDs allocated to inter-area prefixes that are originated by Prefix-SIDs allocated to inter-area prefixes that are originated by
the ABR based on intra-area or inter-area reachability between areas, the ABR based on intra-area or inter-area reachability between areas
unless the advertised prefix is directly attached to the ABR. unless the advertised prefix is directly attached to the ABR.
The NP-Flag (No-PHP) MUST be set and the E-flag MUST be clear for The NP-Flag (No-PHP) MUST be set and the E-Flag MUST be clear for
Prefix-SIDs allocated to redistributed prefixes, unless the Prefix-SIDs allocated to redistributed prefixes, unless the
redistributed prefix is directly attached to the ASBR. redistributed prefix is directly attached to the Autonomous System
Boundary Router (ASBR).
If the NP-Flag is not set, then any upstream neighbor of the Prefix- If the NP-Flag is not set, then:
SID originator MUST pop the Prefix-SID. This is equivalent to the
penultimate hop popping mechanism used in the MPLS dataplane. If the
NP-flag is not set, then the received E-flag is ignored.
If the NP-flag is set then: Any upstream neighbor of the Prefix-SID originator MUST pop the
Prefix-SID. This is equivalent to the penultimate hop-popping
mechanism used in the MPLS data plane.
If the E-flag is not set, then any upstream neighbor of the The received E-Flag is ignored.
Prefix-SID originator MUST keep the Prefix-SID on top of the
stack. This is useful when the originator of the Prefix-SID need
to stitch the incoming packet into a continuing MPLS LSP to the
final destination. This could occur at an Area Border Router
(prefix propagation from one area to another) or at an AS Boundary
Router (prefix propagation from one domain to another).
If the E-flag is set, then any upstream neighbor of the Prefix-SID If the NP-Flag is set and the E-Flag is not set, then:
originator MUST replace the Prefix-SID with an Explicit-NULL
label. This is useful, e.g., when the originator of the Prefix-
SID is the final destination for the related prefix and the
originator wishes to receive the packet with the original EXP
bits.
When the M-Flag is set, the NP-flag and the E-flag MUST be ignored at Any upstream neighbor of the Prefix-SID originator MUST keep the
Prefix-SID on top of the stack. This is useful when the
originator of the Prefix-SID needs to stitch the incoming packet
into a continuing MPLS LSP to the final destination. This could
occur at an ABR (prefix propagation from one area to another) or
at an ASBR (prefix propagation from one domain to another).
If both the NP-Flag and E-Flag are set, then:
Any upstream neighbor of the Prefix-SID originator MUST replace
the Prefix-SID with an Explicit NULL label. This is useful, e.g.,
when the originator of the Prefix-SID is the final destination for
the related prefix and the originator wishes to receive the packet
with the original EXP bits.
When the M-Flag is set, the NP-Flag and the E-Flag MUST be ignored on
reception. reception.
As the Mapping Server does not specify the originator of a prefix As the Mapping Server does not specify the originator of a prefix
advertisement, it is not possible to determine PHP behavior solely advertisement, it is not possible to determine PHP behavior solely
based on the Mapping Server advertisement. However, PHP behavior based on the Mapping Server Advertisement. However, PHP behavior
SHOULD be done in following cases: SHOULD be done in the following cases:
The Prefix is intra-area type and the downstream neighbor is the The Prefix is intra-area type and the downstream neighbor is the
originator of the prefix. originator of the prefix.
The Prefix is inter-area type and downstream neighbor is an ABR, The Prefix is inter-area type and the downstream neighbor is an
which is advertising prefix reachability and is also generating ABR, which is advertising prefix reachability and is also
the Extended Prefix TLV with the A-flag set for this prefix as generating the Extended Prefix TLV with the A-Flag set for this
described in section 2.1 of [RFC7684]. prefix as described in Section 2.1 of [RFC7684].
The Prefix is external type and downstream neighbor is an ASBR, The Prefix is external type and the downstream neighbor is an
which is advertising prefix reachability and is also generating ASBR, which is advertising prefix reachability and is also
the Extended Prefix TLV with the A-flag set for this prefix as generating the Extended Prefix TLV with the A-Flag set for this
described in section 2.1 of [RFC7684]. prefix as described in Section 2.1 of [RFC7684].
When a Prefix-SID is advertised in an Extended Prefix Range TLV, then When a Prefix-SID is advertised in an Extended Prefix Range TLV, then
the value advertised in the Prefix SID Sub-TLV is interpreted as a the value advertised in the Prefix-SID Sub-TLV is interpreted as a
starting SID/Label value. 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.0.2.1/32, Prefix-SID: Index 1 Router-A: 192.0.2.1/32, Prefix-SID: Index 1
Router-B: 192.0.2.2/32, Prefix-SID: Index 2 Router-B: 192.0.2.2/32, Prefix-SID: Index 2
Router-C: 192.0.2.3/32, Prefix-SID: Index 3 Router-C: 192.0.2.3/32, Prefix-SID: Index 3
Router-D: 192.0.2.4/32, Prefix-SID: Index 4 Router-D: 192.0.2.4/32, Prefix-SID: Index 4
then the Prefix field in the Extended Prefix Range TLV would be set then the Prefix field in the Extended Prefix Range TLV would be set
to 192.0.2.1, Prefix Length would be set to 32, Range Size would be to 192.0.2.1, Prefix Length would be set to 32, Range Size would be
set to 4, and the Index value in the Prefix-SID Sub-TLV would be set set to 4, and the Index value in the Prefix-SID Sub-TLV would be set
to 1. 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:
192.0.2.0/30, Prefix-SID: Index 51 192.0.2.0/30, Prefix-SID: Index 51
192.0.2.4/30, Prefix-SID: Index 52 192.0.2.4/30, Prefix-SID: Index 52
192.0.2.8/30, Prefix-SID: Index 53 192.0.2.8/30, Prefix-SID: Index 53
192.0.2.12/30, Prefix-SID: Index 54 192.0.2.12/30, Prefix-SID: Index 54
192.0.2.16/30, Prefix-SID: Index 55 192.0.2.16/30, Prefix-SID: Index 55
192.0.2.20/30, Prefix-SID: Index 56 192.0.2.20/30, Prefix-SID: Index 56
192.0.2.24/30, Prefix-SID: Index 57 192.0.2.24/30, Prefix-SID: Index 57
then the Prefix field in the Extended Prefix Range TLV would be set then the Prefix field in the Extended Prefix Range TLV would be set
to 192.0.2.0, Prefix Length would be set to 30, Range Size would be to 192.0.2.0, Prefix Length would be set to 30, Range Size would be
7, and the Index value in the Prefix-SID Sub-TLV would be set to 51. 7, and the Index value in the Prefix-SID Sub-TLV would be set to 51.
6. 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.
6.1. Adj-SID Sub-TLV 6.1. Adj-SID Sub-TLV
Adj-SID is an optional Sub-TLV of the Extended Link TLV defined in Adj-SID is an optional sub-TLV of the Extended Link TLV defined in
[RFC7684]. It MAY appear multiple times in the Extended Link TLV. [RFC7684]. It MAY appear multiple times in the Extended Link TLV.
The Adj-SID Sub-TLV has the following format: 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 | Reserved | MT-ID | Weight | | Flags | Reserved | MT-ID | Weight |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID/Label/Index (variable) | | SID/Label/Index (variable) |
+---------------------------------------------------------------+ +---------------------------------------------------------------+
where: where:
Type: 2 Type: 2
Length: 7 or 8 octets, dependent on the V flag. Length: 7 or 8 octets, depending on the V-Flag
Flags: Single octet field containing the following flags: Flags: Single-octet field containing the following flags:
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
|B|V|L|G|P| | |B|V|L|G|P| |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
where: where:
B-Flag: Backup Flag. If set, the Adj-SID refers to an B-Flag: Backup Flag. If set, the Adj-SID refers to an
adjacency that is eligible for protection (e.g., using IPFRR or adjacency that is eligible for protection (e.g., using IP
MPLS-FRR) as described in section 3.5 of Fast Reroute or MPLS-FRR (MPLS-Fast Reroute) as described
[I-D.ietf-spring-segment-routing]. in Section 2.1 of [RFC8402].
The V-Flag: Value/Index Flag. If set, then the Adj-SID carries 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
index. an 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 Adj-SID has local significance. If not set, carried by the Adj-SID has local significance. If not
then the value/index carried by this Sub-TLV has global set, then the value/index carried by this sub-TLV has
significance. global significance.
The G-Flag: Group Flag. When set, the G-Flag indicates that G-Flag: Group Flag. When set, the G-Flag indicates that
the Adj-SID refers to a group of adjacencies (and therefore MAY the Adj-SID refers to a group of adjacencies (and
be assigned to other adjacencies as well). therefore MAY 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
the Adj-SID is persistently allocated, i.e., the Adj-SID value that the Adj-SID is persistently allocated, i.e., the
remains consistent across router restart and/or interface flap. Adj-SID value 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.
Reserved: SHOULD be set to 0 on transmission and MUST be ignored Reserved: SHOULD be set to 0 on transmission and MUST be ignored
on reception. on reception
MT-ID: Multi-Topology ID (as defined in [RFC4915]. MT-ID: Multi-Topology ID (as defined in [RFC4915]
Weight: Weight used for load-balancing purposes. The use of the Weight: Weight used for load-balancing purposes. The use of the
weight is defined in [I-D.ietf-spring-segment-routing]. weight is defined in [RFC8402].
SID/Index/Label: as described in Section 5. SID/Index/Label: As described in Section 5
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]. Section 3.5 of [RFC8402].
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.
6.2. LAN Adj-SID Sub-TLV 6.2. LAN Adj-SID Sub-TLV
LAN Adj-SID is an optional Sub-TLV of the Extended Link TLV defined The LAN Adjacency SID is an optional sub-TLV of the Extended Link TLV
in [RFC7684]. It MAY appear multiple times in the Extended-Link TLV. defined in [RFC7684]. It MAY appear multiple times in the Extended
It is used to advertise a SID/Label for an adjacency to a non-DR Link TLV. It is used to advertise a SID/Label for an adjacency to a
router on a broadcast, NBMA, or hybrid [RFC6845] network. non-DR (Designated Router) router on a broadcast, Non-Broadcast
Multi-Access (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 | Reserved | MT-ID | Weight | | Flags | Reserved | MT-ID | Weight |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Neighbor ID | | Neighbor ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID/Label/Index (variable) | | SID/Label/Index (variable) |
+---------------------------------------------------------------+ +---------------------------------------------------------------+
where: where:
Type: 3 Type: 3
Length: 11 or 12 octets, dependent on V-flag. Length: 11 or 12 octets, depending on the V-Flag
Flags: same as in Section 6.1 Flags: Same as in Section 6.1
Reserved: SHOULD be set to 0 on transmission and MUST be ignored Reserved: SHOULD be set to 0 on transmission and MUST be ignored
on reception. on reception
MT-ID: Multi-Topology ID (as defined in [RFC4915]. MT-ID: Multi-Topology ID (as defined in [RFC4915])
Weight: Weight used for load-balancing purposes. The use of the Weight: Weight used for load-balancing purposes. The use of the
weight is defined in [I-D.ietf-spring-segment-routing]. weight is defined in [RFC8402].
Neighbor ID: The Router ID of the neighbor for which the LAN-Adj- Neighbor ID: The Router ID of the neighbor for which the LAN
SID is advertised. Adjacency SID is advertised
SID/Index/Label: as described in Section 5. SID/Index/Label: As described in Section 5
When the P-flag is not set, the Adj-SID MAY be persistent. When When the P-Flag is not set, the LAN Adjacency SID MAY be persistent.
the P-flag is set, the Adj-SID MUST be persistent. When the P-Flag is set, the LAN Adjacency SID MUST be persistent.
7. Elements of Procedure 7. Elements of Procedure
7.1. Intra-area Segment routing in OSPFv2 7.1. Intra-area Segment Routing in OSPFv2
An OSPFv2 router that supports segment routing MAY advertise Prefix- An OSPFv2 router that supports Segment Routing MAY advertise Prefix-
SIDs for any prefix to which it is advertising reachability (e.g., a SIDs for any prefix to which it is advertising reachability (e.g., a
loopback IP address as described in Section 5). loopback IP address as described in Section 5).
A 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.ietf-spring-segment-routing-ldp-interop]). A described in [RFC8661]). A Mapping Server advertises Prefix-SIDs for
Mapping Server advertises Prefix-SIDs for remote prefixes that exist remote prefixes that exist in the OSPFv2 routing domain. Multiple
in the OSPFv2 routing domain. Multiple Mapping Servers can advertise Mapping Servers can advertise Prefix-SIDs for the same prefix; in
Prefix-SIDs for the same prefix, in which case the same Prefix-SID which case, the same Prefix-SID MUST be advertised by all of them.
MUST be advertised by all of them. The flooding scope of the OSPF The flooding scope of the OSPF Extended Prefix Opaque LSA that is
Extended Prefix Opaque LSA that is generated by the SR Mapping Server generated by the SR Mapping Server could be either area scoped or AS
could be either area-scoped or AS-scoped and is determined based on scoped and is determined based on the configuration of the SR Mapping
the configuration of the SR Mapping Server. Server.
An SR Mapping Server MUST use the OSPF Extended Prefix Range TLV when An SR Mapping Server MUST use the OSPF Extended Prefix Range TLV when
advertising SIDs for prefixes. Prefixes of different route-types can advertising SIDs for prefixes. Prefixes of different route types can
be combined in a single OSPF Extended Prefix Range TLV advertised by be combined in a single OSPF Extended Prefix Range TLV advertised by
an SR Mapping Server. Because the OSPF Extended Prefix Range TLV an SR Mapping Server. Because the OSPF Extended Prefix Range TLV
doesn't include a Route-Type field, as in the OSPF Extended Prefix doesn't include a Route-Type field, as in the OSPF Extended Prefix
TLV, it is possible to include adjacent prefixes from different TLV, it is possible to include adjacent prefixes from different route
Route-Types in the OSPF Extended Prefix Range TLV. types in the OSPF Extended Prefix Range TLV.
Area-scoped OSPF Extended Prefix Range TLVs are propagated between Area-scoped OSPF Extended Prefix Range TLVs are propagated between
areas. Similar to propagation of prefixes between areas, an ABR only areas. Similar to propagation of prefixes between areas, an ABR only
propagates the OSPF Extended Prefix Range TLV that it considers to be propagates the OSPF Extended Prefix Range TLV that it considers to be
the best from the set it received. The rules used to pick the best the best from the set it received. The rules used to pick the best
OSPF Extended Prefix Range TLV are described in Section 4. OSPF Extended Prefix Range TLV are described in Section 4.
When propagating an OSPF Extended Prefix Range TLV between areas, When propagating an OSPF Extended Prefix Range TLV between areas,
ABRs MUST set the IA-Flag, that is used to prevent redundant flooding ABRs MUST set the IA-Flag. This is used to prevent redundant
of the OSPF Extended Prefix Range TLV between areas as described in flooding of the OSPF Extended Prefix Range TLV between areas as
Section 4. described in Section 4.
7.2. Inter-area Segment routing in OSPFv2 7.2. Inter-area Segment Routing in OSPFv2
In order to support SR in a multi-area environment, OSPFv2 MUST In order to support SR in a multiarea environment, OSPFv2 MUST
propagate Prefix-SID information between areas. The following propagate Prefix-SID information between areas. The following
procedure is used to propagate Prefix SIDs between areas. procedure is used to propagate Prefix-SIDs between areas.
When an OSPF ABR advertises a Type-3 Summary LSA from an intra-area When an OSPF ABR advertises a Type-3 Summary LSA from an intra-area
prefix to all its connected areas, it will also originate an Extended prefix to all its connected areas, it will also originate an OSPF
Prefix Opaque LSA, as described in [RFC7684]. The flooding scope of Extended Prefix Opaque LSA as described in [RFC7684]. The flooding
the Extended Prefix Opaque LSA type will be set to area-local scope. scope of the OSPF Extended Prefix Opaque LSA type will be set to
The route-type in the OSPF Extended Prefix TLV is set to inter-area. area-local scope. The route type in the OSPF Extended Prefix TLV is
The Prefix-SID Sub-TLV will be included in this LSA and the Prefix- set to inter-area. The Prefix-SID Sub-TLV will be included in this
SID value will be set as follows: LSA and the Prefix-SID value 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 source
area and find the advertising router associated with the best path area and find the advertising router associated with the best 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 this 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 the Prefix-SID for the prefix to other router when propagating the Prefix-SID for the prefix to other
areas. areas.
When an OSPF ABR advertises Type-3 Summary LSAs from an inter-area When an OSPF ABR advertises Type-3 Summary LSAs from an inter-area
route to all its connected areas, it will also originate an Extended route to all its connected areas, it will also originate an OSPF
Prefix Opaque LSA, as described in [RFC7684]. The flooding scope of Extended Prefix Opaque LSA as described in [RFC7684]. The flooding
the Extended Prefix Opaque LSA type will be set to area-local scope. scope of the OSPF Extended Prefix Opaque LSA type will be set to
The route-type in OSPF Extended Prefix TLV is set to inter-area. The area-local scope. The route type in the OSPF Extended Prefix TLV is
Prefix-SID Sub-TLV will be included in this LSA and the Prefix-SID set to inter-area. The Prefix-SID Sub-TLV will be included in this
will be set as follows: LSA and the Prefix-SID will be set as follows:
The ABR will look at its best path to the prefix in the backbone The ABR will look at its best path to the prefix in the backbone
area and find the advertising router associated with the best path area and find the advertising router associated with the best 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 a router advertised a Prefix-
for the prefix and use it when advertising the Prefix-SID to other SID for the prefix and use it when advertising the Prefix-SID to
connected areas. other connected areas.
If no Prefix-SID was advertised for the prefix in the backbone If no Prefix-SID was advertised for the prefix in the backbone
area by the ABR that contributes to the best path to the prefix, area by the ABR that contributes to the best path to the prefix,
the originating ABR will use the Prefix-SID advertised by any the originating ABR will use the Prefix-SID advertised by any
other router when propagating the Prefix-SID for the prefix to other router when propagating the Prefix-SID for the prefix to
other areas. other areas.
7.3. Segment Routing for External Prefixes 7.3. Segment Routing for External Prefixes
Type-5 LSAs are flooded domain wide. When an ASBR, which supports Type-5 LSAs are flooded domain wide. When an ASBR, which supports
SR, generates Type-5 LSAs, it SHOULD also originate Extended Prefix SR, generates Type-5 LSAs, it SHOULD also originate OSPF Extended
Opaque LSAs, as described in [RFC7684]. The flooding scope of the Prefix Opaque LSAs as described in [RFC7684]. The flooding scope of
Extended Prefix Opaque LSA type is set to AS-wide scope. The route- the OSPF Extended Prefix Opaque LSA type is set to AS-wide scope.
type in the OSPF Extended Prefix TLV is set to external. The Prefix- The route type in the OSPF Extended Prefix TLV is set to external.
SID Sub-TLV is included in this LSA and the Prefix-SID value will be The Prefix-SID Sub-TLV is included in this LSA and the Prefix-SID
set to the SID that has been reserved for that prefix. value will be set to the SID that has been reserved for that prefix.
When an NSSA [RFC3101] ABR translates Type-7 LSAs into Type-5 LSAs, When a Not-So-Stubby Area (NSSA) [RFC3101] ABR translates Type-7 LSAs
it SHOULD also advertise the Prefix-SID for the prefix. The NSSA ABR into Type-5 LSAs, it SHOULD also advertise the Prefix-SID for the
determines its best path to the prefix advertised in the translated prefix. The NSSA ABR determines its best path to the prefix
Type-7 LSA and finds the advertising router associated with that advertised in the translated Type-7 LSA and finds the advertising
path. If the advertising router has advertised a Prefix-SID for the router associated with that path. If the advertising router has
prefix, then the NSSA ABR uses it when advertising the Prefix-SID for advertised a Prefix-SID for the prefix, then the NSSA ABR uses it
the Type-5 prefix. Otherwise, the Prefix-SID advertised by any other when advertising the Prefix-SID for the Type-5 prefix. Otherwise,
router will be used. the Prefix-SID advertised by any other router will be used.
7.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 6. using the Adj-SID Sub-TLV as described in Section 6.
7.4.1. Advertisement of Adj-SID on Point-to-Point Links 7.4.1. Advertisement of Adj-SID on Point-to-Point Links
An Adj-SID MAY be advertised for any adjacency on a P2P link that is An Adj-SID MAY be advertised for any adjacency on a point-to-point
in neighbor state 2-Way or higher. If the adjacency on a P2P link (P2P) link that is in neighbor state 2-Way or higher. If the
transitions from the FULL state, then the Adj-SID for that adjacency adjacency on a P2P link transitions from the FULL state, then the
MAY be removed from the area. If the adjacency transitions to a Adj-SID for that adjacency MAY be removed from the area. If the
state lower then 2-Way, then the Adj-SID advertisement MUST be adjacency transitions to a state lower than 2-Way, then the Adj-SID
withdrawn from the area. Advertisement MUST be withdrawn from the area.
7.4.2. Adjacency SID on Broadcast or NBMA Interfaces 7.4.2. Adjacency SID on Broadcast or NBMA Interfaces
Broadcast, NBMA, or hybrid [RFC6845] networks in OSPF are represented Broadcast, NBMA, or hybrid [RFC6845] networks in OSPF are represented
by a star topology where the Designated Router (DR) is the central by a star topology where the Designated Router (DR) is the central
point to which all other routers on the broadcast, NBMA, or hybrid point to which all other routers on the broadcast, NBMA, or hybrid
network connect. As a result, routers on the broadcast, NBMA, or network connect. As a result, routers on the broadcast, NBMA, or
hybrid network advertise only their adjacency to the DR. Routers hybrid network advertise only their adjacency to the DR. Routers
that do not act as DR do not form or advertise adjacencies with each 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. They do, however, maintain 2-Way adjacency state with each
other and are directly reachable. other and are directly reachable.
When Segment Routing is used, each router on the broadcast, NBMA, or 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 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. using the Adj-SID Sub-TLV as described in Section 6.1.
SR capable routers MAY also advertise a LAN-Adj-SID for other SR-capable routers MAY also advertise a LAN Adjacency SID for other
neighbors (e.g., BDR, DR-OTHER) on the broadcast, NBMA, or hybrid neighbors (e.g., Backup Designated Router, DR-OTHER, etc.) on the
network using the LAN-ADJ-SID Sub-TLV as described in Section 6.2. broadcast, NBMA, or hybrid network using the LAN Adj-SID Sub-TLV as
described in Section 6.2.
8. IANA Considerations 8. IANA Considerations
This specification updates several existing OSPF registries. This specification updates several existing OSPF registries and
creates a new IGP registry.
8.1. OSPF Router Information (RI) TLVs Registry 8.1. OSPF Router Information (RI) TLVs Registry
o 8 (IANA Preallocated) - SR-Algorithm TLV The following values have been allocated:
o 9 (IANA Preallocated) - SID/Label Range TLV
o 14 - SR Local Block TLV +-------+---------------------+---------------+
| Value | TLV Name | Reference |
+=======+=====================+===============+
| 8 | SR-Algorithm TLV | This document |
+-------+---------------------+---------------+
| 9 | SID/Label Range TLV | This document |
+-------+---------------------+---------------+
| 14 | SR Local Block TLV | This document |
+-------+---------------------+---------------+
| 15 | SRMS Preference TLV | This document |
+-------+---------------------+---------------+
o 15 - SRMS Preference TLV Table 1: OSPF Router Information (RI) TLVs
8.2. OSPFv2 Extended Prefix Opaque LSA TLVs Registry 8.2. OSPFv2 Extended Prefix Opaque LSA TLVs Registry
Following values are allocated: The following values have been allocated:
o 2 - OSPF Extended Prefix Range TLV +-------+--------------------------------+---------------+
| Value | Description | Reference |
+=======+================================+===============+
| 2 | OSPF Extended Prefix Range TLV | This document |
+-------+--------------------------------+---------------+
Table 2: OSPFv2 Extended Prefix Opaque LSA TLVs
8.3. OSPFv2 Extended Prefix TLV Sub-TLVs Registry 8.3. OSPFv2 Extended Prefix TLV Sub-TLVs Registry
Following values are allocated: The following values have been allocated:
o 1 - SID/Label Sub-TLV +-------+--------------------+---------------+
| Value | Description | Reference |
+=======+====================+===============+
| 1 | SID/Label Sub-TLV | This document |
+-------+--------------------+---------------+
| 2 | Prefix-SID Sub-TLV | This document |
+-------+--------------------+---------------+
o 2 - Prefix SID Sub-TLV Table 3: OSPFv2 Extended Prefix TLV Sub-TLVs
8.4. OSPFv2 Extended Link TLV Sub-TLVs Registry 8.4. OSPFv2 Extended Link TLV Sub-TLVs Registry
Following initial values are allocated: The following initial values have been allocated:
o 1 - SID/Label Sub-TLV
o 2 - Adj-SID Sub-TLV +-------+---------------------------+---------------+
| Value | Description | Reference |
+=======+===========================+===============+
| 1 | SID/Label Sub-TLV | This document |
+-------+---------------------------+---------------+
| 2 | Adj-SID Sub-TLV | This document |
+-------+---------------------------+---------------+
| 3 | LAN Adj-SID/Label Sub-TLV | This document |
+-------+---------------------------+---------------+
o 3 - LAN Adj-SID/Label Sub-TLV Table 4: OSPFv2 Extended Link TLV Sub-TLVs
8.5. IGP Algorithm Type Registry 8.5. IGP Algorithm Types Registry
IANA is requested to set up a registry called "IGP Algorithm Type" IANA has set up a subregistry called "IGP Algorithm Type" under the
under a new category of "Interior Gateway Protocol (IGP) Parameters" "Interior Gateway Protocol (IGP) Parameters" registry. The
IANA registries. The registration policy for this registry is registration policy for this registry is "Standards Action"
"Standards Action" ([RFC8126] and [RFC7120]). ([RFC8126] and [RFC7120]).
Values in this registry come from the range 0-255. Values in this registry come from the range 0-255.
The initial values in the IGP Algorithm Type registry are: The initial values in the IGP Algorithm Type registry are as follows:
0: Shortest Path First (SPF) algorithm based on link metric. This
is the standard shortest path algorithm as computed by the IGP
protocol. Consistent with the deployed practice for link-state
protocols, Algorithm 0 permits any node to overwrite the SPF path
with a different path based on its local policy.
1: Strict Shortest Path First (SPF) algorithm based on link
metric. The algorithm is identical to Algorithm 0 but Algorithm 1
requires that all nodes along the path will honor the SPF routing
decision. Local policy at the node claiming support for Algorithm
1 MUST NOT alter the SPF paths computed by Algorithm 1.
9. Implementation Status
An implementation survey with seven questions related to the
implementer's support of OSPFv2 Segment Routing was sent to the OSPF
WG list and several known implementers. This section contains
responses from three implementers who completed the survey. No
external means were used to verify the accuracy of the information
submitted by the respondents. The respondents are considered experts
on the products they reported on. Additionally, responses were
omitted from implementers who indicated that they have not
implemented the function yet.
This section will be removed before publication as an RFC.
Responses from Nokia (former Alcatel-Lucent):
Link to a web page describing the implementation:
https://infoproducts.alcatel-lucent.com/cgi-bin/dbaccessfilename.cgi/
3HE10799AAAATQZZA01_V1_7450%20ESS%207750%20SR%20and%207950%20XRS%20Un
icast%20Routing%20Protocols%20Guide%20R14.0.R1.pdf
The implementation's level of maturity: Production.
Coverage: We have implemented all sections and have support for the
latest draft.
Licensing: Part of the software package that needs to be purchased.
Implementation experience: Great spec. We also performed inter-
operability testing with Cisco's OSPF Segment Routing implementation.
Contact information: wim.henderickx@nokia.com
Responses from Cisco Systems:
Link to a web page describing the implementation:
http://www.segment-routing.net/home/tutorial
The implementation's level of maturity: Production.
Coverage: All sections have been implemented according to the latest
draft.
Licensing: Part of a commercial software package.
Implementation experience: Many aspects of the draft are result of
the actual implementation experience, as the draft evolved from its
initial version to the current one. Interoperability testing with
Alcatel-Lucent was performed, which confirmed the draft's ability to
serve as a reference for the implementors.
Contact information: ppsenak@cisco.com
Responses from Juniper:
The implementation's name and/or a link to a web page describing the
implementation:
Feature name is OSPF SPRING
The implementation's level of maturity: To be released in 16.2
(second half of 2016)
Coverage: All sections implemented except Sections 4, and 6. +-------+--------------------------------------------+-----------+
| Value | Description | Reference |
+=======+============================================+===========+
| 0 | Shortest Path First (SPF) algorithm based | This |
| | on link metric. This is the standard | document |
| | shortest path algorithm as computed by the | |
| | IGP protocol. Consistent with the | |
| | deployed practice for link-state | |
| | protocols, Algorithm 0 permits any node to | |
| | overwrite the SPF path with a different | |
| | path based on its local policy. | |
+-------+--------------------------------------------+-----------+
| 1 | Strict Shortest Path First (SPF) algorithm | This |
| | based on link metric. The algorithm is | document |
| | identical to Algorithm 0, but Algorithm 1 | |
| | requires that all nodes along the path | |
| | will honor the SPF routing decision. | |
| | Local policy at the node claiming support | |
| | for Algorithm 1 MUST NOT alter the SPF | |
| | paths computed by Algorithm 1. | |
+-------+--------------------------------------------+-----------+
Licensing: JUNOS Licensing needed. Table 5: IGP Algorithm Types
Implementation experience: NA 9. TLV/Sub-TLV Error Handling
Contact information: shraddha@juniper.net For any new TLVs/sub-TLVs defined in this document, if the length is
invalid, the LSA in which it is advertised is considered malformed
and MUST be ignored. An error SHOULD be logged subject to rate
limiting.
10. Security Considerations 10. Security Considerations
With the OSPFv2 segment routing extensions defined herein, OSPFv2 With the OSPFv2 Segment Routing extensions defined herein, OSPFv2
will now program the MPLS data plane [RFC3031] in addition to the IP will now program the MPLS data plane [RFC3031] in addition to the IP
data plane. Previously, LDP [RFC5036] or another label distribution data plane. Previously, LDP [RFC5036] or another label distribution
mechanism was required to advertise MPLS labels and program the MPLS mechanism was required to advertise MPLS labels and program the MPLS
data plane. data plane.
In general, the same types of attacks that can be carried out on the 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 IP control plane can be carried out on the MPLS control plane
resulting in traffic being misrouted in the respective data planes. resulting in traffic being misrouted in the respective data planes.
However, the latter can be more difficult to detect and isolate. However, the latter can be more difficult to detect and isolate.
Existing security extensions as described in [RFC2328] and [RFC7684] Existing security extensions as described in [RFC2328] and [RFC7684]
apply to these segment routing extensions. While OSPF is under a apply to these Segment Routing extensions. While OSPF is under a
single administrative domain, there can be deployments where single administrative domain, there can be deployments where
potential attackers have access to one or more networks in the OSPF potential attackers have access to one or more networks in the OSPF
routing domain. In these deployments, stronger authentication routing domain. In these deployments, stronger authentication
mechanisms such as those specified in [RFC7474] SHOULD be used. mechanisms such as those specified in [RFC7474] SHOULD be used.
Implementations MUST assure that malformed TLV and Sub-TLV defined in Implementations MUST assure that malformed TLVs and sub-TLVs defined
this document are detected and do not provide a vulnerability for in this document are detected and do not provide a vulnerability for
attackers to crash the OSPFv2 router or routing process. Reception attackers to crash the OSPFv2 router or routing process. Reception
of malformed TLV or Sub-TLV SHOULD be counted and/or logged for of malformed TLVs or sub-TLVs SHOULD be counted and/or logged for
further analysis. Logging of malformed TLVs and Sub-TLVs SHOULD be further analysis. Logging of malformed TLVs and sub-TLVs SHOULD be
rate-limited to prevent a Denial of Service (DoS) attack (distributed rate limited to prevent a Denial of Service (DoS) attack (distributed
or otherwise) from overloading the OSPF control plane. or otherwise) from overloading the OSPF control plane.
11. Contributors 11. References
The following people gave a substantial contribution to the content
of this document: Acee Lindem, Ahmed Bashandy, Martin Horneffer,
Bruno Decraene, Stephane Litkowski, Igor Milojevic, Rob Shakir and
Saku Ytti.
12. Acknowledgements
We would like to thank Anton Smirnov for his contribution.
Thanks to Acee Lindem for the detail review of the draft,
corrections, as well as discussion about details of the encoding.
13. References
13.1. Normative References
[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]
Bashandy, A., Filsfils, C., Previdi, S., Decraene, B., and
S. Litkowski, "Segment Routing interworking with LDP",
draft-ietf-spring-segment-routing-ldp-interop-15 (work in
progress), September 2018.
[I-D.ietf-spring-segment-routing-mpls] 11.1. Normative References
Bashandy, A., Filsfils, C., Previdi, S., Decraene, B.,
Litkowski, S., and R. Shakir, "Segment Routing with MPLS
data plane", draft-ietf-spring-segment-routing-mpls-15
(work in progress), October 2018.
[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>.
[RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, [RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328,
DOI 10.17487/RFC2328, April 1998, DOI 10.17487/RFC2328, April 1998,
<https://www.rfc-editor.org/info/rfc2328>. <https://www.rfc-editor.org/info/rfc2328>.
skipping to change at page 27, line 38 skipping to change at line 1190
[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>.
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for
Writing an IANA Considerations Section in RFCs", BCP 26, Writing an IANA Considerations Section in RFCs", BCP 26,
RFC 8126, DOI 10.17487/RFC8126, June 2017, RFC 8126, DOI 10.17487/RFC8126, June 2017,
<https://www.rfc-editor.org/info/rfc8126>. <https://www.rfc-editor.org/info/rfc8126>.
13.2. Informative References [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[I-D.ietf-ospf-ospfv3-segment-routing-extensions] [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L.,
Psenak, P. and S. Previdi, "OSPFv3 Extensions for Segment Decraene, B., Litkowski, S., and R. Shakir, "Segment
Routing", draft-ietf-ospf-ospfv3-segment-routing- Routing Architecture", RFC 8402, DOI 10.17487/RFC8402,
extensions-18 (work in progress), November 2018. July 2018, <https://www.rfc-editor.org/info/rfc8402>.
[RFC8660] Bashandy, A., Ed., Filsfils, C., Ed., Previdi, S.,
Decraene, B., Litkowski, S., and R. Shakir, "Segment
Routing with MPLS Data Plane", RFC 8660,
DOI 10.17487/RFC8660, December 2019,
<https://www.rfc-editor.org/info/rfc8660>.
[RFC8661] Bashandy, A., Ed., Filsfils, C., Ed., Previdi, S.,
Decraene, B., and S. Litkowski, "Segment Routing
Interworking with LDP", RFC 8661, DOI 10.17487/RFC8661,
December 2019, <https://www.rfc-editor.org/info/rfc8661>.
11.2. Informative References
[RFC3031] Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol
Label Switching Architecture", RFC 3031,
DOI 10.17487/RFC3031, January 2001,
<https://www.rfc-editor.org/info/rfc3031>.
[RFC5036] Andersson, L., Ed., Minei, I., Ed., and B. Thomas, Ed.,
"LDP Specification", RFC 5036, DOI 10.17487/RFC5036,
October 2007, <https://www.rfc-editor.org/info/rfc5036>.
[RFC7474] Bhatia, M., Hartman, S., Zhang, D., and A. Lindem, Ed., [RFC7474] Bhatia, M., Hartman, S., Zhang, D., and A. Lindem, Ed.,
"Security Extension for OSPFv2 When Using Manual Key "Security Extension for OSPFv2 When Using Manual Key
Management", RFC 7474, DOI 10.17487/RFC7474, April 2015, Management", RFC 7474, DOI 10.17487/RFC7474, April 2015,
<https://www.rfc-editor.org/info/rfc7474>. <https://www.rfc-editor.org/info/rfc7474>.
[RFC7855] Previdi, S., Ed., Filsfils, C., Ed., Decraene, B., [RFC7855] Previdi, S., Ed., Filsfils, C., Ed., Decraene, B.,
Litkowski, S., Horneffer, M., and R. Shakir, "Source Litkowski, S., Horneffer, M., and R. Shakir, "Source
Packet Routing in Networking (SPRING) Problem Statement Packet Routing in Networking (SPRING) Problem Statement
and Requirements", RFC 7855, DOI 10.17487/RFC7855, May and Requirements", RFC 7855, DOI 10.17487/RFC7855, May
2016, <https://www.rfc-editor.org/info/rfc7855>. 2016, <https://www.rfc-editor.org/info/rfc7855>.
[RFC8666] Psenak, P., Ed. and S. Previdi, Ed., "OSPFv3 Extensions
for Segment Routing", RFC 8666, DOI 10.17487/RFC8666,
December 2019, <https://www.rfc-editor.org/info/rfc8666>.
Acknowledgements
We would like to thank Anton Smirnov for his contribution.
Thanks to Acee Lindem for the detailed review of the document,
corrections, as well as discussion about details of the encoding.
Contributors
The following people gave a substantial contribution to the content
of this document: Acee Lindem, Ahmed Bashandy, Martin Horneffer,
Bruno Decraene, Stephane Litkowski, Igor Milojevic, and Saku Ytti.
Authors' Addresses Authors' Addresses
Peter Psenak (editor) Peter Psenak (editor)
Cisco Systems, Inc. Cisco Systems, Inc.
Apollo Business Center Apollo Business Center, Mlynske nivy 43
Mlynske nivy 43 821 09 Bratislava
Bratislava 821 09
Slovakia Slovakia
Email: ppsenak@cisco.com Email: ppsenak@cisco.com
Stefano Previdi (editor) Stefano Previdi (editor)
Cisco Systems, Inc. Cisco Systems, Inc.
Via Del Serafico, 200 Via Del Serafico, 200
Rome 00142 00142 Rome
Italy Italy
Email: stefano@previdi.net Email: stefano@previdi.net
Clarence Filsfils Clarence Filsfils
Cisco Systems, Inc. Cisco Systems, Inc.
Brussels Brussels
Belgium Belgium
Email: cfilsfil@cisco.com Email: cfilsfil@cisco.com
Hannes Gredler Hannes Gredler
RtBrick Inc. RtBrick Inc.
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 United States of America
Email: robjs@google.com Email: robjs@google.com
Wim Henderickx Wim Henderickx
Nokia Nokia
Copernicuslaan 50 Copernicuslaan 50
Antwerp 2018 2018 Antwerp
BE Belgium
Email: wim.henderickx@nokia.com Email: wim.henderickx@nokia.com
Jeff Tantsura Jeff Tantsura
Apstra, Inc. Apstra, Inc.
Email: jefftant.ietf@gmail.com Email: jefftant.ietf@gmail.com
 End of changes. 208 change blocks. 
592 lines changed or deleted 579 lines changed or added

This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/