draft-ietf-ospf-ospfv3-segment-routing-extensions-16.txt   draft-ietf-ospf-ospfv3-segment-routing-extensions-17.txt 
Open Shortest Path First IGP P. Psenak, Ed. Open Shortest Path First IGP P. Psenak, Ed.
Internet-Draft Cisco Systems, Inc. Internet-Draft Cisco Systems, Inc.
Intended status: Standards Track S. Previdi, Ed. Intended status: Standards Track S. Previdi, Ed.
Expires: April 24, 2019 Individual Expires: May 9, 2019 Individual
October 21, 2018 November 5, 2018
OSPFv3 Extensions for Segment Routing OSPFv3 Extensions for Segment Routing
draft-ietf-ospf-ospfv3-segment-routing-extensions-16 draft-ietf-ospf-ospfv3-segment-routing-extensions-17
Abstract Abstract
Segment Routing (SR) allows a flexible definition of end-to-end paths Segment Routing (SR) allows a flexible definition of end-to-end paths
within IGP topologies by encoding paths as sequences of topological within IGP topologies by encoding paths as sequences of topological
sub-paths, called "segments". These segments are advertised by the sub-paths, called "segments". These segments are advertised by the
link-state routing protocols (IS-IS and OSPF). link-state routing protocols (IS-IS and OSPF).
This draft describes the OSPFv3 extensions required for Segment This draft describes the OSPFv3 extensions required for Segment
Routing. Routing with MPLS data plane.
Requirements Language Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119]. document are to be interpreted as described in [RFC2119].
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
skipping to change at page 1, line 43 skipping to change at page 1, line 43
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on April 24, 2019. This Internet-Draft will expire on May 9, 2019.
Copyright Notice Copyright Notice
Copyright (c) 2018 IETF Trust and the persons identified as the Copyright (c) 2018 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Segment Routing Identifiers . . . . . . . . . . . . . . . . . 3 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1. SID/Label Sub-TLV . . . . . . . . . . . . . . . . . . . . 3 3. Segment Routing Identifiers . . . . . . . . . . . . . . . . . 4
3. Segment Routing Capabilities . . . . . . . . . . . . . . . . 4 3.1. SID/Label Sub-TLV . . . . . . . . . . . . . . . . . . . . 4
3.1. SR-Algorithm TLV . . . . . . . . . . . . . . . . . . . . 4 4. Segment Routing Capabilities . . . . . . . . . . . . . . . . 5
3.2. SID/Label Range TLV . . . . . . . . . . . . . . . . . . . 5 4.1. SR-Algorithm TLV . . . . . . . . . . . . . . . . . . . . 5
3.3. SR Local Block TLV . . . . . . . . . . . . . . . . . . . 7 4.2. SID/Label Range TLV . . . . . . . . . . . . . . . . . . . 6
3.4. SRMS Preference TLV . . . . . . . . . . . . . . . . . . . 9 4.3. SR Local Block TLV . . . . . . . . . . . . . . . . . . . 8
4. OSPFv3 Extended Prefix Range TLV . . . . . . . . . . . . . . 10 4.4. SRMS Preference TLV . . . . . . . . . . . . . . . . . . . 10
5. Prefix SID Sub-TLV . . . . . . . . . . . . . . . . . . . . . 13 5. OSPFv3 Extended Prefix Range TLV . . . . . . . . . . . . . . 11
6. Adjacency Segment Identifier (Adj-SID) . . . . . . . . . . . 16 6. Prefix SID Sub-TLV . . . . . . . . . . . . . . . . . . . . . 14
6.1. Adj-SID Sub-TLV . . . . . . . . . . . . . . . . . . . . . 17 7. Adjacency Segment Identifier (Adj-SID) . . . . . . . . . . . 17
6.2. LAN Adj-SID Sub-TLV . . . . . . . . . . . . . . . . . . . 18 7.1. Adj-SID Sub-TLV . . . . . . . . . . . . . . . . . . . . . 18
7. Elements of Procedure . . . . . . . . . . . . . . . . . . . . 19 7.2. LAN Adj-SID Sub-TLV . . . . . . . . . . . . . . . . . . . 19
7.1. Intra-area Segment routing in OSPFv3 . . . . . . . . . . 19 8. Elements of Procedure . . . . . . . . . . . . . . . . . . . . 20
7.2. Inter-area Segment routing in OSPFv3 . . . . . . . . . . 20 8.1. Intra-area Segment routing in OSPFv3 . . . . . . . . . . 20
7.3. Segment Routing for External Prefixes . . . . . . . . . . 21 8.2. Inter-area Segment routing in OSPFv3 . . . . . . . . . . 21
7.4. Advertisement of Adj-SID . . . . . . . . . . . . . . . . 22 8.3. Segment Routing for External Prefixes . . . . . . . . . . 22
7.4.1. Advertisement of Adj-SID on Point-to-Point Links . . 22 8.4. Advertisement of Adj-SID . . . . . . . . . . . . . . . . 23
7.4.2. Adjacency SID on Broadcast or NBMA Interfaces . . . . 22 8.4.1. Advertisement of Adj-SID on Point-to-Point Links . . 23
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 8.4.2. Adjacency SID on Broadcast or NBMA Interfaces . . . . 23
8.1. OSPFv3 Extended-LSA TLV Registry . . . . . . . . . . . . 22 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23
8.2. OSPFv3 Extended-LSA Sub-TLV registry . . . . . . . . . . 23 9.1. OSPFv3 Extended-LSA TLV Registry . . . . . . . . . . . . 23
9. Security Considerations . . . . . . . . . . . . . . . . . . . 23 9.2. OSPFv3 Extended-LSA Sub-TLV registry . . . . . . . . . . 24
10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 23 10. Security Considerations . . . . . . . . . . . . . . . . . . . 24
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 24 11. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 24
11.1. Normative References . . . . . . . . . . . . . . . . . . 24 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 25
11.2. Informative References . . . . . . . . . . . . . . . . . 26 12.1. Normative References . . . . . . . . . . . . . . . . . . 25
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 26 12.2. Informative References . . . . . . . . . . . . . . . . . 27
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 27
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 sub-paths, 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
skipping to change at page 3, line 27 skipping to change at page 3, line 28
There are additional segment types, e.g., Binding SID defined in There are additional segment types, e.g., Binding SID defined in
[RFC8402]. [RFC8402].
This draft describes the OSPFv3 extensions required for Segment This draft describes the OSPFv3 extensions required for Segment
Routing with MPLS data plane. Routing with MPLS data plane.
Segment Routing architecture is described in [RFC8402]. Segment Routing architecture is described in [RFC8402].
Segment Routing use cases are described in [RFC7855]. Segment Routing use cases are described in [RFC7855].
2. Segment Routing Identifiers 2. Terminology
This section lists some of the terminology used in this document:
ABR - Area Border Router
Adj-SID - Adjacency Segment Identifier
AS - Autonomous System
ASBR - Autonomous System Boundary Router
IS-IS - Intermediate System to Intermediate System
LDP - Label Distribution Protocol
LSP - Label Switched Path
MPLS - Multi Protocol Label Switching
OSPF - Open Shortest Path First
SPF - Shortest Path First
RSVP - Resource Reservation Protocol
SID - Segment Identifier
SR - Segment Routing
SRGB - Segment Routing Global Block
SRLB - Segment Routing Local Block
SRMS - Segment Routing Mapping Server
TLV - Type Length Value
3. Segment Routing Identifiers
Segment Routing defines various types of Segment Identifiers (SIDs): Segment Routing defines various types of Segment Identifiers (SIDs):
Prefix-SID, Adjacency-SID, LAN Adjacency SID, and Binding SID. Prefix-SID, Adjacency-SID, LAN Adjacency SID, and Binding SID.
2.1. SID/Label Sub-TLV 3.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
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 |
skipping to change at page 4, line 4 skipping to change at page 4, line 43
| Type | Length | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID/Label (variable) | | SID/Label (variable) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
Type: 7 Type: 7
Length: Variable, 3 or 4 octets Length: Variable, 3 or 4 octets
SID/Label: If length is set to 3, then the 20 rightmost bits SID/Label: If length is set to 3, then the 20 rightmost bits
represent a label. If length is set to 4, then the value represent a label. If length is set to 4, then the value
represents a 32-bit SID. represents a 32-bit SID.
The receiving router MUST ignore the SID/Label Sub-TLV if the The receiving router MUST ignore the SID/Label Sub-TLV if the
length is other then 3 or 4. length is other than 3 or 4.
3. Segment Routing Capabilities 4. 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 OSPFv3 Router Information These SR capabilities are advertised in the OSPFv3 Router Information
Opaque LSA (defined in [RFC7770]). Opaque LSA (defined in [RFC7770]).
3.1. SR-Algorithm TLV 4.1. SR-Algorithm TLV
The SR-Algorithm TLV is a top-level TLV of the OSPFv3 Router The SR-Algorithm TLV is a top-level TLV of the OSPFv3 Router
Information Opaque LSA (defined in [RFC7770]). Information 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 OSPFv3 Router Information Opaque LSA. If the SR-Algorithm TLV in the OSPFv3 Router Information Opaque LSA. If the SR-Algorithm TLV
is not advertised by the node, such node is considered as not being is not advertised by the node, such node is considered as not being
segment 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
skipping to change at page 4, line 49 skipping to change at page 5, line 43
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Algorithm 1 | Algorithm... | Algorithm n | | | Algorithm 1 | Algorithm... | Algorithm n | |
+- -+ +- -+
| | | |
+ + + +
where: where:
Type: 8 Type: 8 as defined in [I-D.ietf-ospf-segment-routing-extensions]
and applicable to OSPFv3.
Length: Variable, in octets, dependent on number of algorithms Length: Variable, in octets, dependent on number of algorithms
advertised. advertised.
Algorithm: Single octet identifying the algorithm. Algorithms are Algorithm: Single octet identifying the algorithm. Algorithms are
defined in "IGP Algorithm Type" registry under "Interior Gateway defined in "IGP Algorithm Type" registry under "Interior Gateway
Protocol (IGP) Parameters", defined in Protocol (IGP) Parameters" [ALGOREG], defined in
[I-D.ietf-ospf-segment-routing-extensions]. [I-D.ietf-ospf-segment-routing-extensions].
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 OSPFv3 receiver MUST use the first occurrence of the TLV in the OSPFv3
Router Information Opaque LSA. If the SR-Algorithm TLV appears in Router Information Opaque LSA. If the SR-Algorithm TLV appears in
multiple OSPFv3 Router Information Opaque LSAs that have different multiple OSPFv3 Router Information Opaque LSAs that have different
flooding scopes, the SR-Algorithm TLV in the OSPFv3 Router flooding scopes, the SR-Algorithm TLV in the OSPFv3 Router
Information Opaque LSA with the area-scoped flooding scope MUST be Information Opaque LSA with the area-scoped flooding scope MUST be
used. If the SR-Algorithm TLV appears in multiple OSPFv3 Router used. If the SR-Algorithm TLV appears in multiple OSPFv3 Router
Information Opaque LSAs that have the same flooding scope, the SR- Information Opaque LSAs that have the same flooding scope, the SR-
Algorithm TLV in the OSPFv3 Router Information Opaque LSA with the Algorithm TLV in the OSPFv3 Router Information Opaque LSA with the
numerically smallest Instance ID MUST be used and subsequent numerically smallest Instance ID MUST be used and subsequent
instances of the SR-Algorithm TLV MUST be ignored. instances of the SR-Algorithm TLV MUST be ignored.
The OSPFv3 Router Information Opaque LSA can be advertised at any of The OSPFv3 Router Information Opaque LSA can be advertised at any of
the defined opaque flooding scopes (link, area, or Autonomous System the defined opaque flooding scopes (link, area, or Autonomous System
(AS)). For the purpose of SR-Algorithm TLV advertisement, area- (AS)). For the purpose of SR-Algorithm TLV advertisement, area-
scoped flooding is REQUIRED. scoped flooding is REQUIRED.
3.2. SID/Label Range TLV 4.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 a form of an index as described in
Section 5. Such index defines the offset in the SID/Label space Section 6. Such 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 OSPFv3 Router The SID/Label Range TLV is a top-level TLV of the OSPFv3 Router
Information Opaque LSA (defined in [RFC7770]). Information 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 19 skipping to change at page 6, line 49
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Range Size | Reserved | | Range Size | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sub-TLVs (variable) | | Sub-TLVs (variable) |
+- -+ +- -+
| | | |
+ + + +
where: where:
Type: 9 Type: 9 as defined in [I-D.ietf-ospf-segment-routing-extensions]
and applicable to OSPFv3.
Length: Variable, in octets, dependent on Sub-TLVs. Length: Variable, in octets, dependent on 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 SIDs
or labels in the range including the first SID/label). It MUST be or labels in the range including the first SID/label). It MUST be
greater than 0. 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 3.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 SID/Label Range
TLV. If more then one SID/Label Sub-TLVs are present, the SID/Label TLV. If more than one SID/Label Sub-TLVs are present, the SID/Label
Range TLV MUST be ignored. 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 case:
o The originating router MUST encode each range into a different o The originating router MUST encode each range into a different
SID/Label Range TLV. SID/Label Range TLV.
o The originating router decides the order in which the set of SID/ o The originating router decides the order in which the set of SID/
Label Range TLVs are advertised inside the Router Information Label Range TLVs are advertised inside the Router Information
skipping to change at page 7, line 11 skipping to change at page 7, line 41
storage, or any other mechanism) in order to assure the SID/label storage, or any other mechanism) in order to assure the SID/label
range and SID index correspondence is preserved across graceful range and SID index correspondence is preserved across graceful
restarts. restarts.
o The receiving router MUST adhere to the order in which the ranges o The receiving router MUST adhere to the order in which the ranges
are advertised when calculating a SID/label from a SID index. are advertised when calculating a SID/label from a SID index.
o The originating router MUST NOT advertise overlapping ranges. o The originating router MUST NOT advertise overlapping ranges.
o When a router receives multiple overlapping ranges, it MUST o When a router receives multiple overlapping ranges, it MUST
conform to the procedures defined in conform to the procedures defined in section 2.3 of
[I-D.ietf-spring-segment-routing-mpls]. [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
skipping to change at page 7, line 46 skipping to change at page 8, line 34
index 199 means label 1099 index 199 means label 1099
... ...
index 200 means label 500 index 200 means label 500
... ...
The OSPFv3 Router Information Opaque LSA can be advertised at any of The OSPFv3 Router Information Opaque LSA can be advertised at any of
the defined flooding scopes (link, area, or autonomous system (AS)). the defined flooding scopes (link, area, or autonomous system (AS)).
For the purpose of SID/Label Range TLV advertisement, area-scoped For the purpose of SID/Label Range TLV advertisement, area-scoped
flooding is REQUIRED. flooding is REQUIRED.
3.3. SR Local Block TLV 4.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 OSPFv3 Adjacency-SIDs, but also by components other than the OSPFv3
protocol. As an example, an application or a controller can instruct protocol. As an example, an application or a controller can instruct
the router to allocate a specific local SID. Some controllers or the router to allocate a specific local SID. Some controllers or
applications can use the control plane to discover the available set applications can use the control plane to discover the available set
of local SIDs on a particular router. In such cases, the SRLB is of local SIDs on a particular router. In such cases, the SRLB is
advertised in the control plane. The requirement to advertise the advertised in the control plane. The requirement to advertise the
SRLB is further described in [I-D.ietf-spring-segment-routing-mpls]. SRLB is further described in [I-D.ietf-spring-segment-routing-mpls].
skipping to change at page 8, line 30 skipping to change at page 9, line 19
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Range Size | Reserved | | Range Size | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sub-TLVs (variable) | | Sub-TLVs (variable) |
+- -+ +- -+
| | | |
+ + + +
where: where:
Type: 14 Type: 14 as defined in [I-D.ietf-ospf-segment-routing-extensions]
and applicable to OSPFv3.
Length: Variable, in octets, dependent on Sub-TLVs. Length: Variable, in octets, dependent on 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 SIDs
or labels in the range including the first SID/label). It MUST be or labels in the range including the first SID/label). It MUST be
greater than 0. 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 3.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-TLVs are present, the SRLB TLV MUST be
ignored. ignored.
The originating router MUST NOT advertise overlapping ranges. The originating router MUST NOT advertise overlapping ranges.
When a router receives multiple overlapping ranges, it MUST conform
to the procedures defined in section 2.3 of
[I-D.ietf-spring-segment-routing-mpls].
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 OSPFv3, the reporting of local SIDs is done Within the context of OSPFv3, the reporting of local SIDs is done
through OSPFv3 Sub-TLVs such as the Adjacency-SID (Section 6). through OSPFv3 Sub-TLVs such as the Adjacency-SID (Section 7).
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 this
document. document.
A router advertising the SRLB TLV MAY also have other label ranges, A router advertising the SRLB TLV MAY also have other label ranges,
outside of the SRLB, used for its local allocation purposes which are outside of the SRLB, used for its local allocation purposes which are
not advertised in the SRLB TLV. For example, it is possible that an not advertised in the SRLB TLV. For example, it is possible that an
Adjacency-SID is allocated using a local label that is not part of Adjacency-SID is allocated using a local label that is not part of
the SRLB. the SRLB.
The OSPFv3 Router Information Opaque LSA can be advertised at any of The OSPFv3 Router Information Opaque LSA can be advertised at any of
the defined flooding scopes (link, area, or autonomous system (AS)). the defined flooding scopes (link, area, or autonomous system (AS)).
For the purpose of SRLB TLV advertisement, area-scoped flooding is For the purpose of SRLB TLV advertisement, area-scoped flooding is
REQUIRED. REQUIRED.
3.4. SRMS Preference TLV 4.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 a node that TLV) is used to advertise a preference associated with a 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 [I-D.ietf-spring-segment-routing-ldp-interop]. SRMS preference is
defined in [I-D.ietf-spring-segment-routing-ldp-interop]. defined in [I-D.ietf-spring-segment-routing-ldp-interop].
The SRMS Preference TLV is a top-level TLV of the OSPFv3 Router The SRMS Preference TLV is a top-level TLV of the OSPFv3 Router
Information Opaque LSA (defined in [RFC7770]). Information Opaque LSA (defined in [RFC7770]).
skipping to change at page 9, line 52 skipping to change at page 10, line 46
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 as defined in [I-D.ietf-ospf-segment-routing-extensions]
and applicable to OSPFv3.
Length: 4 octets Length: 4 octets
Preference: 1 octet. SRMS preference value from 0 to 255. Preference: 1 octet. SRMS preference value from 0 to 255.
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 OSPFv3 the receiver MUST use the first occurrence of the TLV in the OSPFv3
Router Information Opaque LSA. If the SRMS Preference TLV appears in Router Information Opaque LSA. If the SRMS Preference TLV appears in
skipping to change at page 10, line 31 skipping to change at page 11, line 28
instances of the SRMS Preference TLV MUST be ignored. instances of the SRMS Preference TLV MUST be ignored.
The OSPFv3 Router Information Opaque LSA can be advertised at any of The OSPFv3 Router Information Opaque LSA can be advertised at any of
the defined flooding scopes (link, area, or autonomous system (AS)). the defined flooding scopes (link, area, or autonomous system (AS)).
For the purpose of the SRMS Preference TLV advertisement, AS-scoped For the purpose of the SRMS Preference TLV advertisement, AS-scoped
flooding SHOULD be used. This is because SRMS servers can be located flooding SHOULD be used. This is because SRMS servers can be located
in different areas than consumers of the SRMS advertisements. If in different areas than consumers of the SRMS advertisements. If
SRMS advertisements from an SRMS server are only used inside the SRMS SRMS advertisements from an SRMS server are only used inside the SRMS
server's area, area-scoped flooding MAY be used. server's area, area-scoped flooding MAY be used.
4. OSPFv3 Extended Prefix Range TLV 5. OSPFv3 Extended Prefix Range TLV
In some cases it is useful to advertise attributes for a range of In some cases it is useful to advertise attributes for a range of
prefixes. The Segment Routing Mapping Server, which is described in prefixes. The Segment Routing Mapping Server, which is described in
[I-D.ietf-spring-segment-routing-ldp-interop], is an example of where [I-D.ietf-spring-segment-routing-ldp-interop], is an example of where
we need a single advertisement to advertise SIDs for multiple we need a single advertisement to advertise SIDs for multiple
prefixes from a contiguous address range. prefixes from a contiguous address range.
The OSPFv3 Extended Prefix Range TLV is defined for this purpose. The OSPFv3 Extended Prefix Range TLV is defined for this purpose.
The OSPFv3 Extended Prefix Range TLV is a top-level TLV of the The OSPFv3 Extended Prefix Range TLV is a top-level TLV of the
skipping to change at page 12, line 33 skipping to change at page 13, line 33
best one. The following rules are used to select the best best one. The following rules are used to select the best
range from the set of advertisements for the same Prefix range from the set of advertisements for the same Prefix
Range: 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 non-backbone areas.
Other bits: Reserved. These MUST be zero when sent and are
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.
Address Prefix: Address Prefix:
For the address family IPv4 unicast, the prefix itself is For the address family IPv4 unicast, the prefix itself is
encoded as a 32-bit value. The default route is represented by encoded as a 32-bit value. The default route is represented by
a prefix of length 0. a prefix of length 0.
For the address family IPv6 unicast, the prefix, encoded as an For the address family IPv6 unicast, the prefix, encoded as an
skipping to change at page 13, line 7 skipping to change at page 14, line 11
Prefix encoding for other address families is beyond the scope Prefix encoding for other address families is beyond the scope
of this specification. of this specification.
If the OSPFv3 Extended Prefix Range TLVs advertising the exact same If the OSPFv3 Extended Prefix Range TLVs advertising the exact same
range appears in multiple LSAs of the same type, originated by the range appears in multiple LSAs of the same type, originated by the
same OSPFv3 router, the LSA with the numerically smallest Instance ID same OSPFv3 router, the LSA with the numerically smallest Instance ID
MUST be used and subsequent instances of the OSPFv3 Extended Prefix MUST be used and subsequent instances of the OSPFv3 Extended Prefix
Range TLVs MUST be ignored. Range TLVs MUST be ignored.
5. Prefix SID Sub-TLV 6. Prefix SID Sub-TLV
The Prefix SID Sub-TLV is a Sub-TLV of the following OSPFv3 TLVs as The Prefix SID Sub-TLV is a Sub-TLV of the following OSPFv3 TLVs as
defined in [RFC8362] and in Section 4: defined in [RFC8362] and in Section 5:
Intra-Area Prefix TLV Intra-Area Prefix TLV
Inter-Area Prefix TLV Inter-Area Prefix TLV
External Prefix TLV External Prefix TLV
OSPFv3 Extended Prefix Range TLV OSPFv3 Extended Prefix Range TLV
It MAY appear more than once in the parent TLV and has the following It MAY appear more than once in the parent TLV and has the following
skipping to change at page 14, line 30 skipping to change at page 15, line 34
then the value/index carried by this Sub-TLV has global then the value/index carried by this Sub-TLV has global
significance. significance.
Other bits: Reserved. These MUST be zero when sent and are Other bits: Reserved. These MUST be zero when sent and are
ignored when received. ignored when received.
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.
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 4.1.
A router receiving a Prefix-SID from a remote node and with an A router receiving a Prefix-SID from a remote node and with an
algorithm value that such remote node has not advertised in the algorithm value that such remote node has not advertised in the
SR-Algorithm Sub-TLV (Section 3.1) MUST ignore the Prefix-SID Sub- SR-Algorithm Sub-TLV (Section 4.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
either: either:
A 32-bit index defining the offset in the SID/Label space A 32-bit index defining the offset in the SID/Label space
advertised by this router. advertised by this router.
A 24-bit label where the 20 rightmost bits are used for A 24-bit label where the 20 rightmost bits are used for
encoding the label value. encoding the label value.
skipping to change at page 16, line 46 skipping to change at page 17, line 46
2001:DB8:1::300/120, Prefix-SID: Index 54 2001:DB8:1::300/120, Prefix-SID: Index 54
2001:DB8:1::400/120, Prefix-SID: Index 55 2001:DB8:1::400/120, Prefix-SID: Index 55
2001:DB8:1::500/120, Prefix-SID: Index 56 2001:DB8:1::500/120, Prefix-SID: Index 56
2001:DB8:1::600/120, Prefix-SID: Index 57 2001:DB8:1::600/120, Prefix-SID: Index 57
then the Prefix field in the OSPFv3 Extended Prefix Range TLV would then the Prefix field in the OSPFv3 Extended Prefix Range TLV would
be set to 2001:DB8:1::0, the Prefix Length would be set to 120, the be set to 2001:DB8:1::0, the Prefix Length would be set to 120, the
Range Size would be set to 7, and the Index value in the Prefix-SID Range Size would be set to 7, and the Index value in the Prefix-SID
Sub-TLV would be set to 51. Sub-TLV would be set to 51.
6. Adjacency Segment Identifier (Adj-SID) 7. Adjacency Segment Identifier (Adj-SID)
An Adjacency Segment Identifier (Adj-SID) represents a router An Adjacency Segment Identifier (Adj-SID) represents a router
adjacency in Segment Routing. adjacency in Segment Routing.
6.1. Adj-SID Sub-TLV 7.1. Adj-SID Sub-TLV
The Adj-SID Sub-TLV is an optional Sub-TLV of the Router-Link TLV as The Adj-SID Sub-TLV is an optional Sub-TLV of the Router-Link TLV as
defined in [RFC8362]. It MAY appear multiple times in the Router- defined in [RFC8362]. It MAY appear multiple times in the Router-
Link TLV. The Adj-SID Sub-TLV has the following format: Link TLV. 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at page 18, line 41 skipping to change at page 19, line 41
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 7.2. LAN Adj-SID Sub-TLV
The LAN Adj-SID Sub-TLV is an optional Sub-TLV of the Router-Link The LAN Adj-SID Sub-TLV is an optional Sub-TLV of the Router-Link
TLV. It MAY appear multiple times in the Router-Link TLV. It is TLV. It MAY appear multiple times in the Router-Link TLV. It is
used to advertise a SID/Label for an adjacency to a non-DR router on used to advertise a SID/Label for an adjacency to a non-DR router on
a broadcast, NBMA, or hybrid [RFC6845] network. a broadcast, NBMA, or hybrid [RFC6845] network.
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | | Type | Length |
skipping to change at page 19, line 23 skipping to change at page 20, line 23
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID/Label/Index (variable) | | SID/Label/Index (variable) |
+---------------------------------------------------------------+ +---------------------------------------------------------------+
where: where:
Type: 6 Type: 6
Length: 11 or 12 octets, dependent on V-flag. Length: 11 or 12 octets, dependent on V-flag.
Flags: same as in Section 6.1 Flags: same as in Section 7.1
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 [RFC8402]. weight is defined in [RFC8402].
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.
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-Adj-
SID is advertised. SID is advertised.
skipping to change at page 19, line 46 skipping to change at page 20, line 46
A 32-bit index defining the offset in the SID/Label space A 32-bit index defining the offset in the SID/Label space
advertised by this router. advertised by this router.
A 24-bit label where the 20 rightmost bits are used for A 24-bit label where the 20 rightmost bits are used for
encoding the label value. encoding the label value.
When the P-flag is not set, the Adj-SID MAY be persistent. When When the P-flag is not set, the Adj-SID MAY be persistent. When
the P-flag is set, the Adj-SID MUST be persistent. the P-flag is set, the Adj-SID MUST be persistent.
7. Elements of Procedure 8. Elements of Procedure
7.1. Intra-area Segment routing in OSPFv3 8.1. Intra-area Segment routing in OSPFv3
An OSPFv3 router that supports segment routing MAY advertise Prefix- An OSPFv3 router that supports segment routing MAY advertise Prefix-
SIDs for any prefix 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 6).
A Prefix-SID can also be advertised by SR Mapping Servers (as A Prefix-SID can also be advertised by SR Mapping Servers (as
described in [I-D.ietf-spring-segment-routing-ldp-interop]). A described in [I-D.ietf-spring-segment-routing-ldp-interop]). A
Mapping Server advertises Prefix-SIDs for remote prefixes that exist Mapping Server advertises Prefix-SIDs for remote prefixes that exist
in the OSPFv3 routing domain. Multiple Mapping Servers can advertise in the OSPFv3 routing domain. Multiple Mapping Servers can advertise
Prefix-SIDs for the same prefix, in which case the same Prefix-SID Prefix-SIDs for the same prefix, in which case the same Prefix-SID
MUST be advertised by all of them. The SR Mapping Server could use MUST be advertised by all of them. The SR Mapping Server could use
either area flooding scope or autonomous system flooding scope when either area flooding scope or autonomous system flooding scope when
advertising Prefix SIDs for prefixes, based on the configuration of advertising Prefix SIDs for prefixes, based on the configuration of
the SR Mapping Server. Depending on the flooding scope used, the SR the SR Mapping Server. Depending on the flooding scope used, the SR
Mapping Server chooses the OSPFv3 LSA type that will be used. If the Mapping Server chooses the OSPFv3 LSA type that will be used. If the
area flooding scope is needed, an E-Intra-Area-Prefix-LSA [RFC8362] area flooding scope is needed, an E-Intra-Area-Prefix-LSA [RFC8362]
is used. If autonomous system flooding scope is needed, an E-AS- is used. If autonomous system flooding scope is needed, an E-AS-
External-LSA [RFC8362] is used. External-LSA [RFC8362] is used.
When a Prefix-SID is advertised by the Mapping Server, which is When a Prefix-SID is advertised by the Mapping Server, which is
indicated by the M-flag in the Prefix-SID Sub-TLV (Section 5), the indicated by the M-flag in the Prefix-SID Sub-TLV (Section 6), the
route type as implied by the LSA type is ignored and the Prefix-SID route type as implied by the LSA type is ignored and the Prefix-SID
is bound to the corresponding prefix independent of the route type. is bound to the corresponding prefix independent of the route type.
Advertisement of the Prefix-SID by the Mapping Server using an Inter- Advertisement of the Prefix-SID by the Mapping Server using an Inter-
Area Prefix TLV, External-Prefix TLV, or Intra-Area-Prefix TLV Area Prefix TLV, External-Prefix TLV, or Intra-Area-Prefix TLV
[RFC8362] does not itself contribute to the prefix reachability. The [RFC8362] does not itself contribute to the prefix reachability. The
NU-bit MUST be set in the PrefixOptions field of the LSA which is NU-bit MUST be set in the PrefixOptions field of the LSA which is
used by the Mapping Server to advertise SID or SID Range, which used by the Mapping Server to advertise SID or SID Range, which
prevents the advertisement from contributing to prefix reachability. prevents the advertisement from contributing to prefix reachability.
An SR Mapping Server MUST use the OSPFv3 Extended Prefix Range TLVs An SR Mapping Server MUST use the OSPFv3 Extended Prefix Range TLVs
when advertising SIDs for prefixes. Prefixes of different route- when advertising SIDs for prefixes. Prefixes of different route-
types can be combined in a single OSPFv3 Extended Prefix Range TLV types can be combined in a single OSPFv3 Extended Prefix Range TLV
advertised by an SR Mapping Server. advertised by an SR Mapping Server.
Area-scoped OSPFv3 Extended Prefix Range TLVs are propagated between Area-scoped OSPFv3 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 OSPFv3 Extended Prefix Range TLV that it considers to propagates the OSPFv3 Extended Prefix Range TLV that it considers to
be the best from the set it received. The rules used to pick the be the best from the set it received. The rules used to pick the
best OSPFv3 Extended Prefix Range TLV are described in Section 4. best OSPFv3 Extended Prefix Range TLV are described in Section 5.
When propagating an OSPFv3 Extended Prefix Range TLV between areas, When propagating an OSPFv3 Extended Prefix Range TLV between areas,
ABRs MUST set the IA-Flag, that is used to prevent redundant flooding ABRs MUST set the IA-Flag, that is used to prevent redundant flooding
of the OSPFv3 Extended Prefix Range TLV between areas as described in of the OSPFv3 Extended Prefix Range TLV between areas as described in
Section 4. Section 5.
7.2. Inter-area Segment routing in OSPFv3 8.2. Inter-area Segment routing in OSPFv3
In order to support SR in a multi-area environment, OSPFv3 MUST In order to support SR in a multi-area environment, OSPFv3 MUST
propagate Prefix-SID information between areas. The following propagate Prefix-SID information between areas. The following
procedure is used to propagate Prefix SIDs between areas. procedure is used to propagate Prefix SIDs between areas.
When an OSPFv3 ABR advertises an Inter-Area-Prefix-LSA from an intra- When an OSPFv3 ABR advertises an Inter-Area-Prefix-LSA from an intra-
area prefix to all its connected areas, it will also include the area prefix to all its connected areas, it will also include the
Prefix-SID Sub-TLV, as described in Section 5. The Prefix-SID value Prefix-SID Sub-TLV, as described in Section 6. The Prefix-SID value
will be set as follows: will be set as follows:
The ABR will look at its best path to the prefix in the source The ABR will look at its best path to the prefix in the 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 such router advertised a Prefix-SID
for the prefix and use it when advertising the Prefix-SID to other for the prefix and use it when advertising the Prefix-SID to other
connected areas. connected areas.
If no Prefix-SID was advertised for the prefix in the source area If no Prefix-SID was advertised for the prefix in the source area
by the router that contributes to the best path to the prefix, the by the router that contributes to the best path to the prefix, the
originating ABR will use the Prefix-SID advertised by any other originating ABR will use the Prefix-SID advertised by any other
router when propagating the Prefix-SID for the prefix to other router when propagating the Prefix-SID for the prefix to other
areas. areas.
When an OSPFv3 ABR advertises Inter-Area-Prefix-LSA LSAs from an When an OSPFv3 ABR advertises Inter-Area-Prefix-LSA LSAs from an
inter-area route to all its connected areas, it will also include the inter-area route to all its connected areas, it will also include the
Prefix-SID Sub-TLV, as described in Section 5. The Prefix-SID value Prefix-SID Sub-TLV, as described in Section 6. The Prefix-SID value
will be set as follows: will be set as follows:
The ABR will look at its best path to the prefix in the 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 router advertised a Prefix-SID
for the prefix and use it when advertising the Prefix-SID to other for the prefix and use it when advertising the Prefix-SID to other
connected areas. connected areas.
If no Prefix-SID was advertised for the prefix in the backbone If no Prefix-SID was advertised for the prefix in the backbone
area by the ABR that contributes to the best path to the prefix, area by the ABR that contributes to the best path to the prefix,
the originating ABR will use the Prefix-SID advertised by any the originating ABR will use the Prefix-SID advertised by any
other router when propagating the Prefix-SID for the prefix to other router when propagating the Prefix-SID for the prefix to
other areas. other areas.
7.3. Segment Routing for External Prefixes 8.3. Segment Routing for External Prefixes
AS-External-LSAs are flooded domain wide. When an ASBR, which AS-External-LSAs are flooded domain wide. When an ASBR, which
supports SR, originates an E-AS-External-LSA, it SHOULD also include supports SR, originates an E-AS-External-LSA, it SHOULD also include
a Prefix-SID Sub-TLV, as described in Section 5. The Prefix-SID a Prefix-SID Sub-TLV, as described in Section 6. The Prefix-SID
value will be 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 an E-NSSA-LSA into an E-AS- When an NSSA [RFC3101] ABR translates an E-NSSA-LSA into an E-AS-
External-LSA, it SHOULD also advertise the Prefix-SID for the prefix. External-LSA, it SHOULD also advertise the Prefix-SID for the prefix.
The NSSA ABR determines its best path to the prefix advertised in the The NSSA ABR determines its best path to the prefix advertised in the
translated E-NSSA-LSA and finds the advertising router associated translated E-NSSA-LSA and finds the advertising router associated
with that path. If the advertising router has advertised a Prefix- with that path. If the advertising router has advertised a Prefix-
SID for the prefix, then the NSSA ABR uses it when advertising the SID for the prefix, then the NSSA ABR uses it when advertising the
Prefix-SID for the E-AS-External-LSA. Otherwise, the Prefix-SID Prefix-SID for the E-AS-External-LSA. Otherwise, the Prefix-SID
advertised by any other router will be used. advertised by any other router will be used.
7.4. Advertisement of Adj-SID 8.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 7.
7.4.1. Advertisement of Adj-SID on Point-to-Point Links 8.4.1. Advertisement of Adj-SID on Point-to-Point Links
An Adj-SID MAY be advertised for any adjacency on a P2P link that is An Adj-SID MAY be advertised for any adjacency on a P2P link that is
in neighbor state 2-Way or higher. If the adjacency on a P2P link in neighbor state 2-Way or higher. If the adjacency on a P2P link
transitions from the FULL state, then the Adj-SID for that adjacency transitions from the FULL state, then the Adj-SID for that adjacency
MAY be removed from the area. If the adjacency transitions to a MAY be removed from the area. If the adjacency transitions to a
state lower then 2-Way, then the Adj-SID advertisement MUST be state lower than 2-Way, then the Adj-SID advertisement MUST be
withdrawn from the area. withdrawn from the area.
7.4.2. Adjacency SID on Broadcast or NBMA Interfaces 8.4.2. Adjacency SID on Broadcast or NBMA Interfaces
Broadcast, NBMA, or hybrid [RFC6845] networks in OSPFv3 are Broadcast, NBMA, or hybrid [RFC6845] networks in OSPFv3 are
represented by a star topology where the Designated Router (DR) is represented by a star topology where the Designated Router (DR) is
the central point to which all other routers on the broadcast, NBMA, the central point to which all other routers on the broadcast, NBMA,
or hybrid network connect. As a result, routers on the broadcast, or hybrid network connect. As a result, routers on the broadcast,
NBMA, or hybrid network advertise only their adjacency to the DR. NBMA, or hybrid network advertise only their adjacency to the DR.
Routers that do not act as DR do not form or advertise adjacencies Routers that do not act as DR do not form or advertise adjacencies
with each other. They do, however, maintain 2-Way adjacency state with each other. They do, however, maintain 2-Way adjacency state
with each other and are directly reachable. with each 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 7.1.
SR-capable routers MAY also advertise a LAN-Adj-SID for other SR-capable routers MAY also advertise a LAN-Adj-SID for other
neighbors (e.g., BDR, DR-OTHER) on the broadcast, NBMA, or hybrid neighbors (e.g., BDR, DR-OTHER) on the broadcast, NBMA, or hybrid
network using the LAN-Adj-SID Sub-TLV as described in Section 6.2. network using the LAN-Adj-SID Sub-TLV as described in Section 7.2.
8. IANA Considerations 9. IANA Considerations
This specification updates several existing OSPFv3 registries. This specification updates several existing OSPFv3 registries.
8.1. OSPFv3 Extended-LSA TLV Registry 9.1. OSPFv3 Extended-LSA TLV Registry
Following values are allocated: Following values are allocated:
o 9 - OSPFv3 Extended Prefix Range TLV o 9 - OSPFv3 Extended Prefix Range TLV
8.2. OSPFv3 Extended-LSA Sub-TLV registry 9.2. OSPFv3 Extended-LSA Sub-TLV registry
o 4 - Prefix SID Sub-TLV o 4 - Prefix SID Sub-TLV
o 5 - Adj-SID Sub-TLV o 5 - Adj-SID Sub-TLV
o 6 - LAN Adj-SID Sub-TLV o 6 - LAN Adj-SID Sub-TLV
o 7 - SID/Label Sub-TLV o 7 - SID/Label Sub-TLV
9. Security Considerations 10. Security Considerations
With the OSPFv3 segment routing extensions defined herein, OSPFv3 With the OSPFv3 segment routing extensions defined herein, OSPFv3
will now program the MPLS data plane [RFC3031]. Previously, LDP will now program the MPLS data plane [RFC3031]. Previously, LDP
[RFC5036] or another label distribution mechanism was required to [RFC5036] or another label distribution mechanism was required to
advertise MPLS labels and program the MPLS data plane. advertise MPLS labels and program the MPLS 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.
skipping to change at page 23, line 43 skipping to change at page 24, line 43
be used. be used.
Implementations MUST assure that malformed TLV and Sub-TLV defined in Implementations MUST assure that malformed TLV and Sub-TLV defined in
this document are detected and do not provide a vulnerability for this document are detected and do not provide a vulnerability for
attackers to crash the OSPFv3 router or routing process. Reception attackers to crash the OSPFv3 router or routing process. Reception
of a malformed TLV or Sub-TLV SHOULD be counted and/or logged for of a malformed TLV or Sub-TLV 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 OSPFv3 control plane. or otherwise) from overloading the OSPFv3 control plane.
10. Contributors 11. Contributors
The following people gave a substantial contribution to the content The following people gave a substantial contribution to the content
of this document and should be considered as co-authors: of this document and should be considered as co-authors:
Clarence Filsfils Clarence Filsfils
Cisco Systems, Inc. Cisco Systems, Inc.
Brussels Brussels
Belgium Belgium
Email: cfilsfil@cisco.com Email: cfilsfil@cisco.com
skipping to change at page 24, line 45 skipping to change at page 25, line 45
Nuage Networks Nuage Networks
US US
Email: jefftant.ietf@gmail.com Email: jefftant.ietf@gmail.com
Thanks to Acee Lindem for his substantial contribution to the content Thanks to Acee Lindem for his substantial contribution to the content
of this document. of this document.
We would like to thank Anton Smirnov for his contribution as well. We would like to thank Anton Smirnov for his contribution as well.
11. References 12. References
11.1. Normative References 12.1. Normative References
[ALGOREG] "IGP Algorithm Types", <https://www.iana.org/assignments/
igp-parameters/igp-parameters.xhtml#igp-algorithm-types>.
[I-D.ietf-ospf-segment-routing-extensions] [I-D.ietf-ospf-segment-routing-extensions]
Psenak, P., Previdi, S., Filsfils, C., Gredler, H., Psenak, P., Previdi, S., Filsfils, C., Gredler, H.,
Shakir, R., Henderickx, W., and J. Tantsura, "OSPF Shakir, R., Henderickx, W., and J. Tantsura, "OSPF
Extensions for Segment Routing", draft-ietf-ospf-segment- Extensions for Segment Routing", draft-ietf-ospf-segment-
routing-extensions-25 (work in progress), April 2018. routing-extensions-25 (work in progress), April 2018.
[I-D.ietf-spring-segment-routing-ldp-interop] [I-D.ietf-spring-segment-routing-ldp-interop]
Bashandy, A., Filsfils, C., Previdi, S., Decraene, B., and Bashandy, A., Filsfils, C., Previdi, S., Decraene, B., and
S. Litkowski, "Segment Routing interworking with LDP", S. Litkowski, "Segment Routing interworking with LDP",
draft-ietf-spring-segment-routing-ldp-interop-15 (work in draft-ietf-spring-segment-routing-ldp-interop-15 (work in
progress), September 2018. progress), September 2018.
[I-D.ietf-spring-segment-routing-mpls] [I-D.ietf-spring-segment-routing-mpls]
Bashandy, A., Filsfils, C., Previdi, S., Decraene, B., Bashandy, A., Filsfils, C., Previdi, S., Decraene, B.,
Litkowski, S., and R. Shakir, "Segment Routing with MPLS Litkowski, S., and R. Shakir, "Segment Routing with MPLS
data plane", draft-ietf-spring-segment-routing-mpls-14 data plane", draft-ietf-spring-segment-routing-mpls-15
(work in progress), June 2018. (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>.
[RFC3031] Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol [RFC3031] Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol
Label Switching Architecture", RFC 3031, Label Switching Architecture", RFC 3031,
DOI 10.17487/RFC3031, January 2001, DOI 10.17487/RFC3031, January 2001,
<https://www.rfc-editor.org/info/rfc3031>. <https://www.rfc-editor.org/info/rfc3031>.
skipping to change at page 26, line 20 skipping to change at page 27, line 20
[RFC8362] Lindem, A., Roy, A., Goethals, D., Reddy Vallem, V., and [RFC8362] Lindem, A., Roy, A., Goethals, D., Reddy Vallem, V., and
F. Baker, "OSPFv3 Link State Advertisement (LSA) F. Baker, "OSPFv3 Link State Advertisement (LSA)
Extensibility", RFC 8362, DOI 10.17487/RFC8362, April Extensibility", RFC 8362, DOI 10.17487/RFC8362, April
2018, <https://www.rfc-editor.org/info/rfc8362>. 2018, <https://www.rfc-editor.org/info/rfc8362>.
[RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L.,
Decraene, B., Litkowski, S., and R. Shakir, "Segment Decraene, B., Litkowski, S., and R. Shakir, "Segment
Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, Routing Architecture", RFC 8402, DOI 10.17487/RFC8402,
July 2018, <https://www.rfc-editor.org/info/rfc8402>. July 2018, <https://www.rfc-editor.org/info/rfc8402>.
11.2. Informative References 12.2. Informative References
[RFC4552] Gupta, M. and N. Melam, "Authentication/Confidentiality [RFC4552] Gupta, M. and N. Melam, "Authentication/Confidentiality
for OSPFv3", RFC 4552, DOI 10.17487/RFC4552, June 2006, for OSPFv3", RFC 4552, DOI 10.17487/RFC4552, June 2006,
<https://www.rfc-editor.org/info/rfc4552>. <https://www.rfc-editor.org/info/rfc4552>.
[RFC7166] Bhatia, M., Manral, V., and A. Lindem, "Supporting [RFC7166] Bhatia, M., Manral, V., and A. Lindem, "Supporting
Authentication Trailer for OSPFv3", RFC 7166, Authentication Trailer for OSPFv3", RFC 7166,
DOI 10.17487/RFC7166, March 2014, DOI 10.17487/RFC7166, March 2014,
<https://www.rfc-editor.org/info/rfc7166>. <https://www.rfc-editor.org/info/rfc7166>.
 End of changes. 64 change blocks. 
90 lines changed or deleted 145 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/