summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc8665.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc8665.txt')
-rw-r--r--doc/rfc/rfc8665.txt1313
1 files changed, 1313 insertions, 0 deletions
diff --git a/doc/rfc/rfc8665.txt b/doc/rfc/rfc8665.txt
new file mode 100644
index 0000000..e240288
--- /dev/null
+++ b/doc/rfc/rfc8665.txt
@@ -0,0 +1,1313 @@
+
+
+
+
+Internet Engineering Task Force (IETF) P. Psenak, Ed.
+Request for Comments: 8665 S. Previdi, Ed.
+Category: Standards Track C. Filsfils
+ISSN: 2070-1721 Cisco Systems, Inc.
+ H. Gredler
+ RtBrick Inc.
+ R. Shakir
+ Google, Inc.
+ W. Henderickx
+ Nokia
+ J. Tantsura
+ Apstra, Inc.
+ December 2019
+
+
+ OSPF Extensions for Segment Routing
+
+Abstract
+
+ Segment Routing (SR) allows a flexible definition of end-to-end paths
+ within IGP topologies by encoding paths as sequences of topological
+ subpaths called "segments". These segments are advertised by the
+ link-state routing protocols (IS-IS and OSPF).
+
+ This document describes the OSPFv2 extensions required for Segment
+ Routing.
+
+Status of This Memo
+
+ This is an Internet Standards Track document.
+
+ This document is a product of the Internet Engineering Task Force
+ (IETF). It represents the consensus of the IETF community. It has
+ received public review and has been approved for publication by the
+ Internet Engineering Steering Group (IESG). Further information on
+ Internet Standards is available in Section 2 of RFC 7841.
+
+ Information about the current status of this document, any errata,
+ and how to provide feedback on it may be obtained at
+ https://www.rfc-editor.org/info/rfc8665.
+
+Copyright Notice
+
+ Copyright (c) 2019 IETF Trust and the persons identified as the
+ document authors. All rights reserved.
+
+ This document is subject to BCP 78 and the IETF Trust's Legal
+ Provisions Relating to IETF Documents
+ (https://trustee.ietf.org/license-info) in effect on the date of
+ publication of this document. Please review these documents
+ carefully, as they describe your rights and restrictions with respect
+ to this document. Code Components extracted from this document must
+ include Simplified BSD License text as described in Section 4.e of
+ the Trust Legal Provisions and are provided without warranty as
+ described in the Simplified BSD License.
+
+Table of Contents
+
+ 1. Introduction
+ 1.1. Requirements Language
+ 2. Segment Routing Identifiers
+ 2.1. SID/Label Sub-TLV
+ 3. Segment Routing Capabilities
+ 3.1. SR-Algorithm TLV
+ 3.2. SID/Label Range TLV
+ 3.3. SR Local Block TLV
+ 3.4. SRMS Preference TLV
+ 4. OSPF Extended Prefix Range TLV
+ 5. Prefix-SID Sub-TLV
+ 6. Adjacency Segment Identifier (Adj-SID)
+ 6.1. Adj-SID Sub-TLV
+ 6.2. LAN Adj-SID Sub-TLV
+ 7. Elements of Procedure
+ 7.1. Intra-area Segment Routing in OSPFv2
+ 7.2. Inter-area Segment Routing in OSPFv2
+ 7.3. Segment Routing for External Prefixes
+ 7.4. Advertisement of Adj-SID
+ 7.4.1. Advertisement of Adj-SID on Point-to-Point Links
+ 7.4.2. Adjacency SID on Broadcast or NBMA Interfaces
+ 8. IANA Considerations
+ 8.1. OSPF Router Information (RI) TLVs Registry
+ 8.2. OSPFv2 Extended Prefix Opaque LSA TLVs Registry
+ 8.3. OSPFv2 Extended Prefix TLV Sub-TLVs Registry
+ 8.4. OSPFv2 Extended Link TLV Sub-TLVs Registry
+ 8.5. IGP Algorithm Types Registry
+ 9. TLV/Sub-TLV Error Handling
+ 10. Security Considerations
+ 11. References
+ 11.1. Normative References
+ 11.2. Informative References
+ Acknowledgements
+ Contributors
+ Authors' Addresses
+
+1. Introduction
+
+ Segment Routing (SR) allows a flexible definition of end-to-end paths
+ within IGP topologies by encoding paths as sequences of topological
+ subpaths called "segments". These segments are advertised by the
+ link-state routing protocols (IS-IS and OSPF). Prefix segments
+ 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
+ over a specific adjacency between two nodes in the IGP. A prefix
+ 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
+ both IPv6 and MPLS data planes, and it does not require any
+ additional signaling (other than IGP extensions). The IPv6 data
+ plane is out of the scope of this specification; it is not applicable
+ to OSPFv2, which only supports the IPv4 address family. When used in
+ MPLS networks, SR paths do not require any LDP or RSVP-TE signaling.
+ However, SR can interoperate in the presence of LSPs established with
+ RSVP or LDP.
+
+ There are additional segment types, e.g., Binding Segment Identifier
+ (SID) defined in [RFC8402].
+
+ This document describes the OSPF extensions required for Segment
+ Routing.
+
+ Segment Routing architecture is described in [RFC8402].
+
+ 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
+
+ Segment Routing defines various types of Segment Identifiers (SIDs):
+ Prefix-SID, Adjacency SID, LAN Adjacency SID, and Binding SID.
+
+ Extended Prefix/Link Opaque Link State Advertisements (LSAs) defined
+ in [RFC7684] are used for advertisements of the various SID types.
+
+2.1. SID/Label Sub-TLV
+
+ 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
+ associated with a prefix or adjacency. The SID/Label Sub-TLV has the
+ following format:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Type | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | SID/Label (variable) |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ where:
+
+ Type: 1
+
+ Length: 3 or 4 octets
+
+ SID/Label: If the length is set to 3, then the 20 rightmost bits
+ represent a label. If the length is set to 4, then the value
+ represents a 32-bit SID.
+
+3. Segment Routing Capabilities
+
+ Segment Routing requires some additional router capabilities to be
+ advertised to other routers in the area.
+
+ These SR capabilities are advertised in the Router Information Opaque
+ LSA (defined in [RFC7770]). The TLVs defined below are applicable to
+ both OSPFv2 and OSPFv3; see also [RFC8666].
+
+3.1. SR-Algorithm TLV
+
+ The SR-Algorithm TLV is a top-level TLV of the Router Information
+ Opaque LSA (defined in [RFC7770]).
+
+ 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
+ advertised by the node, such a node is considered as not being
+ Segment Routing capable.
+
+ An SR Router can use various algorithms when calculating reachability
+ to OSPF routers or prefixes in an OSPF area. Examples of these
+ algorithms are metric-based Shortest Path First (SPF), various
+ flavors of Constrained SPF, etc. The SR-Algorithm TLV allows a
+ router to advertise the algorithms currently used by the router to
+ other routers in an OSPF area. The SR-Algorithm TLV has the
+ following format:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Type | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Algorithm 1 | Algorithm... | Algorithm n | |
+ +- -+
+ | |
+ + +
+
+ where:
+
+ Type: 8
+
+ Length: Variable, in octets, depending on the number of
+ algorithms advertised
+
+ Algorithm: Single octet identifying the algorithm. The following
+ values are defined by this document:
+
+ 0: Shortest Path First (SPF) algorithm based on link metric.
+ This is the standard shortest path algorithm as computed
+ by the OSPF 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. If the SR-Algorithm TLV is
+ advertised, Algorithm 0 MUST be included.
+
+ 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.
+
+ When multiple SR-Algorithm TLVs are received from a given router, the
+ receiver MUST use the first occurrence of the TLV in the Router
+ Information Opaque LSA. If the SR-Algorithm TLV appears in multiple
+ Router Information Opaque LSAs that have different flooding scopes,
+ the SR-Algorithm TLV in the Router Information Opaque LSA with the
+ area-scoped flooding scope MUST be used. If the SR-Algorithm TLV
+ appears in multiple Router Information Opaque LSAs that have the same
+ flooding scope, the SR-Algorithm TLV in the Router Information (RI)
+ Opaque LSA with the numerically smallest Instance ID MUST be used and
+ subsequent instances of the SR-Algorithm TLV MUST be ignored.
+
+ The RI LSA can be advertised at any of the defined opaque flooding
+ scopes (link, area, or Autonomous System (AS)). For the purpose of
+ SR-Algorithm TLV advertisement, area-scoped flooding is REQUIRED.
+
+3.2. SID/Label Range TLV
+
+ Prefix-SIDs MAY be advertised in the form of an index as described in
+ 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
+ advertise such SID/Label space.
+
+ The SID/Label Range TLV is a top-level TLV of the Router Information
+ Opaque LSA (defined in [RFC7770]).
+
+ The SID/Label Range TLV MAY appear multiple times and has the
+ following format:
+
+ 0 1 2 3
+ 0 1 2 3 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 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Range Size | Reserved |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Sub-TLVs (variable) |
+ +- -+
+ | |
+ + +
+
+ where:
+
+ Type: 9
+
+ Length: Variable, in octets, depending on the sub-TLVs
+
+ Range Size: 3-octet SID/label range size (i.e., the number of
+ SIDs or labels in the range including the first SID/label). It
+ MUST be greater than 0.
+
+ Reserved: SHOULD be set to 0 on transmission and MUST be ignored
+ on reception
+
+ Initially, the only supported sub-TLV is the SID/Label Sub-TLV as
+ defined in Section 2.1. The SID/Label Sub-TLV MUST be included in
+ the SID/Label Range TLV. The SID/Label advertised in the SID/Label
+ Sub-TLV represents the first SID/Label in the advertised range.
+
+ Only a single SID/Label Sub-TLV MAY be advertised in the SID/Label
+ Range TLV. If more than one SID/Label Sub-TLV is present, the SID/
+ Label Range TLV MUST be ignored.
+
+ Multiple occurrences of the SID/Label Range TLV MAY be advertised in
+ order to advertise multiple ranges. In such a case:
+
+ * The originating router MUST encode each range into a different
+ SID/Label Range TLV.
+
+ * The originating router decides the order in which the set of SID/
+ Label Range TLVs are advertised inside the Router Information
+ Opaque LSA. The originating router MUST ensure the order is the
+ same after a graceful restart (using checkpointing, nonvolatile
+ storage, or any other mechanism) in order to ensure the SID/Label
+ range and SID index correspondence is preserved across graceful
+ restarts.
+
+ * The receiving router MUST adhere to the order in which the ranges
+ are advertised when calculating a SID/Label from a SID index.
+
+ * The originating router MUST NOT advertise overlapping ranges.
+
+ * When a router receives multiple overlapping ranges, it MUST
+ conform to the procedures defined in [RFC8660].
+
+ The following example illustrates the advertisement of multiple
+ 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: 1000
+ Range 1: Range Size: 100 SID/Label Sub-TLV: 500
+
+ The receiving routers concatenate the ranges and build the Segment
+ Routing Global Block (SRGB) as follows:
+
+
+ SRGB = [100, 199]
+ [1000, 1099]
+ [500, 599]
+
+ The indexes span multiple ranges:
+
+
+ index 0 means label 100
+ ...
+ index 99 means label 199
+ index 100 means label 1000
+ index 199 means label 1099
+ ...
+ index 200 means label 500
+ ...
+
+ The RI LSA can be advertised at any of the defined flooding scopes
+ (link, area, or autonomous system (AS)). For the purpose of SID/
+ Label Range TLV advertisement, area-scoped flooding is REQUIRED.
+
+3.3. SR Local Block TLV
+
+ 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
+ Adjacency SIDs but also by components other than the OSPF protocol.
+ As an example, an application or a controller can instruct the router
+ to allocate a specific Local SID. Some controllers or applications
+ can use the control plane to discover the available set of Local SIDs
+ on a particular router. In such cases, the SRLB is advertised in the
+ control plane. The requirement to advertise the SRLB is further
+ described in [RFC8660]. The SRLB TLV is used to advertise the SRLB.
+
+ The SRLB TLV is a top-level TLV of the Router Information Opaque LSA
+ (defined in [RFC7770]).
+
+ The SRLB TLV MAY appear multiple times in the Router Information
+ Opaque LSA and has the following format:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Type | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Range Size | Reserved |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Sub-TLVs (variable) |
+ +- -+
+ | |
+ + +
+
+ where:
+
+ Type: 14
+
+ Length: Variable, in octets, depending on the sub-TLVs
+
+ Range Size: 3-octet SID/Label range size (i.e., the number of
+ SIDs or labels in the range including the first SID/Label). It
+ MUST be greater than 0.
+
+ Reserved: SHOULD be set to 0 on transmission and MUST be ignored
+ on reception
+
+ Initially, the only supported sub-TLV is the SID/Label Sub-TLV as
+ defined in Section 2.1. The SID/Label Sub-TLV MUST be included in
+ the SRLB TLV. The SID/Label advertised in the SID/Label Sub-TLV
+ represents the first SID/Label in the advertised range.
+
+ Only a single SID/Label Sub-TLV MAY be advertised in the SRLB TLV.
+ If more than one SID/Label Sub-TLV is present, the SRLB TLV MUST be
+ ignored.
+
+ The originating router MUST NOT advertise overlapping ranges.
+
+ Each time a SID from the SRLB is allocated, it SHOULD also be
+ reported to all components (e.g., controller or applications) in
+ order for these components to have an up-to-date view of the current
+ SRLB allocation. This is required to avoid collisions between
+ allocation instructions.
+
+ Within the context of OSPF, the reporting of Local SIDs is done
+ through OSPF sub-TLVs, such as the Adjacency SID (Section 6).
+ However, the reporting of allocated Local SIDs can also be done
+ through other means and protocols, which are outside the scope of
+ this document.
+
+ A router advertising the SRLB TLV MAY also have other label ranges,
+ outside of the SRLB, used for its local allocation purposes and 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
+ the SRLB.
+
+ 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
+ advertisement, area-scoped flooding is REQUIRED.
+
+3.4. SRMS Preference TLV
+
+ The Segment Routing Mapping Server Preference TLV (SRMS Preference
+ 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
+ [RFC8661]. SRMS preference is defined in [RFC8661].
+
+ The SRMS Preference TLV is a top-level TLV of the Router Information
+ Opaque LSA (defined in [RFC7770]).
+
+ The SRMS Preference TLV MAY only be advertised once in the Router
+ Information Opaque LSA and has the following format:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Type | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Preference | Reserved |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ where:
+
+ Type: 15
+
+ Length: 4 octets
+
+ Preference: 1 octet, with an SRMS preference value from 0 to 255
+
+ Reserved: SHOULD be set to 0 on transmission and MUST be ignored
+ on reception
+
+ When multiple SRMS Preference TLVs are received from a given router,
+ the receiver MUST use the first occurrence of the TLV in the Router
+ Information Opaque LSA. If the SRMS Preference TLV appears in
+ multiple Router Information Opaque LSAs that have different flooding
+ scopes, the SRMS Preference TLV in the Router Information Opaque LSA
+ with the narrowest flooding scope MUST be used. If the SRMS
+ Preference TLV appears in multiple Router Information Opaque LSAs
+ that have the same flooding scope, the SRMS Preference TLV in the
+ Router Information Opaque LSA with the numerically smallest Instance
+ 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
+ (link, area, or autonomous system (AS)). For the purpose of the SRMS
+ Preference TLV advertisement, AS-scoped flooding SHOULD be used.
+ This is because SRMS servers can be located in a different area than
+ consumers of the SRMS advertisements. If the SRMS advertisements
+ from the SRMS server are only used inside the SRMS server's area,
+ area-scoped flooding MAY be used.
+
+4. OSPF Extended Prefix Range TLV
+
+ In some cases, it is useful to advertise attributes for a range of
+ prefixes. The SR Mapping Server, which is described in [RFC8661], is
+ an example where we need a single advertisement to advertise SIDs for
+ multiple prefixes from a contiguous address range.
+
+ The OSPF Extended Prefix Range TLV, which is a top-level TLV of the
+ Extended Prefix LSA described in [RFC7684] is defined for this
+ purpose.
+
+ Multiple OSPF Extended Prefix Range TLVs MAY be advertised in each
+ OSPF Extended Prefix Opaque LSA, but all prefix ranges included in a
+ single OSPF Extended Prefix Opaque LSA MUST have the same flooding
+ scope. The OSPF Extended Prefix Range TLV has the following format:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Type | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Prefix Length | AF | Range Size |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Flags | Reserved |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Address Prefix (variable) |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Sub-TLVs (variable) |
+ +- -+
+ | |
+
+ where:
+
+ Type: 2
+
+ Length: Variable, in octets, depending on the sub-TLVs
+
+ Prefix Length: Length of prefix in bits
+
+ AF: Address family for the prefix. Currently, the only supported
+ value is 0 for IPv4 unicast. The inclusion of address family
+ in this TLV allows for future extension.
+
+ Range Size: Represents the number of prefixes that are covered by
+ the advertisement. The Range Size MUST NOT exceed the number
+ of prefixes that could be satisfied by the Prefix Length
+ without including the IPv4 multicast address range
+ (224.0.0.0/3).
+
+ Flags: Single-octet field. The following flags are defined:
+
+ 0 1 2 3 4 5 6 7
+ +--+--+--+--+--+--+--+--+
+ |IA| | | | | | | |
+ +--+--+--+--+--+--+--+--+
+
+ where:
+
+ IA-Flag: Inter-Area Flag. If set, advertisement is of
+ inter-area type. An Area Border Router (ABR) that is
+ advertising the OSPF Extended Prefix Range TLV between
+ areas MUST set this bit.
+
+ This bit is used to prevent redundant flooding of Prefix
+ Range TLVs between areas as follows:
+
+ An ABR only propagates an inter-area Prefix Range
+ advertisement from the backbone area to connected
+ nonbackbone areas if the advertisement is considered
+ to be the best one. The following rules are used to
+ select the best range from the set of advertisements
+ for the same Prefix Range:
+
+ An ABR always prefers intra-area Prefix Range
+ advertisements over inter-area advertisements.
+
+ An ABR does not consider inter-area Prefix Range
+ advertisements coming from nonbackbone areas.
+
+ Reserved: SHOULD be set to 0 on transmission and MUST be ignored
+ on reception
+
+ Address Prefix: For the address family IPv4 unicast, the prefix
+ itself is encoded as a 32-bit value. The default route is
+ represented by a prefix of length 0. Prefix encoding for other
+ address families is beyond the scope of this specification.
+
+5. Prefix-SID Sub-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 Section 4. It MAY appear more than once in the parent
+ TLV and has the following format:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Type | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Flags | Reserved | MT-ID | Algorithm |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | SID/Index/Label (variable) |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ where:
+
+ Type: 2
+
+ Length: 7 or 8 octets, depending on the V-Flag
+
+ Flags: Single-octet field. The following flags are defined:
+
+
+ 0 1 2 3 4 5 6 7
+ +--+--+--+--+--+--+--+--+
+ | |NP|M |E |V |L | | |
+ +--+--+--+--+--+--+--+--+
+
+ where:
+
+ NP-Flag: No-PHP (Penultimate Hop Popping) Flag. If set,
+ then the penultimate hop MUST NOT pop 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 an SR Mapping Server as described in
+ [RFC8661].
+
+ E-Flag: Explicit Null Flag. If set, any upstream neighbor
+ of the Prefix-SID originator MUST replace the Prefix-SID
+ with the Explicit NULL label (0 for IPv4) before
+ forwarding the packet.
+
+ V-Flag: Value/Index Flag. If set, then the Prefix-SID
+ carries an absolute value. If not set, then the Prefix-
+ SID carries an index.
+
+ L-Flag: Local/Global Flag. If set, then the value/index
+ carried by the Prefix-SID has local significance. If not
+ set, then the value/index carried by this sub-TLV has
+ global significance.
+
+ 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
+ on reception
+
+ MT-ID: Multi-Topology ID (as defined in [RFC4915])
+
+ Algorithm: Single octet identifying the algorithm the Prefix-SID
+ is associated with as defined in Section 3.1
+
+ A router receiving a Prefix-SID from a remote node and with an
+ algorithm value that the remote node has not advertised in the
+ SR-Algorithm TLV (Section 3.1) MUST ignore the Prefix-SID Sub-
+ TLV.
+
+ 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 field is a 4-octet index defining the offset in the
+ SID/Label space advertised by this router.
+
+ V-Flag is set to 1 and L-Flag is set to 1: The SID/Index/
+ Label field is a 3-octet local label where the 20 rightmost
+ bits are used for encoding the label value.
+
+ All other combinations of V-Flag and L-Flag are invalid and
+ any SID Advertisement received with an invalid setting for
+ V- and L-Flags MUST be ignored.
+
+ If an OSPF router advertises multiple Prefix-SIDs for the same
+ prefix, topology, and algorithm, all of them MUST be ignored.
+
+ When calculating the outgoing label for the prefix, the router MUST
+ take into account, as described below, the E-, NP-, and M-Flags
+ 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
+ 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
+ Prefix-SIDs allocated to inter-area prefixes that are originated by
+ the ABR based on intra-area or inter-area reachability between areas
+ 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
+ Prefix-SIDs allocated to redistributed prefixes, unless the
+ 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-SID originator MUST pop the
+ Prefix-SID. This is equivalent to the penultimate hop-popping
+ mechanism used in the MPLS data plane.
+
+ The received E-Flag is ignored.
+
+ If the NP-Flag is set and the E-Flag is not set, then:
+
+ 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.
+
+ As the Mapping Server does not specify the originator of a prefix
+ advertisement, it is not possible to determine PHP behavior solely
+ based on the Mapping Server Advertisement. However, PHP behavior
+ SHOULD be done in the following cases:
+
+ The Prefix is intra-area type and the downstream neighbor is the
+ originator of the prefix.
+
+ The Prefix is inter-area type and the downstream neighbor is an
+ ABR, which is advertising prefix reachability and is also
+ generating the Extended Prefix TLV with the A-Flag set for this
+ prefix as described in Section 2.1 of [RFC7684].
+
+ The Prefix is external type and the downstream neighbor is an
+ ASBR, which is advertising prefix reachability and is also
+ generating the Extended Prefix TLV with the A-Flag set for this
+ prefix as described in Section 2.1 of [RFC7684].
+
+ 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
+ starting SID/Label value.
+
+ Example 1: If the following router addresses (loopback addresses)
+ need to be mapped into the corresponding Prefix-SID indexes:
+
+ Router-A: 192.0.2.1/32, Prefix-SID: Index 1
+ Router-B: 192.0.2.2/32, Prefix-SID: Index 2
+ Router-C: 192.0.2.3/32, Prefix-SID: Index 3
+ Router-D: 192.0.2.4/32, Prefix-SID: Index 4
+
+ 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
+ set to 4, and the Index value in the Prefix-SID Sub-TLV would be set
+ to 1.
+
+ Example 2: If the following prefixes need to be mapped into the
+ corresponding Prefix-SID indexes:
+
+ 192.0.2.0/30, Prefix-SID: Index 51
+ 192.0.2.4/30, Prefix-SID: Index 52
+ 192.0.2.8/30, Prefix-SID: Index 53
+ 192.0.2.12/30, Prefix-SID: Index 54
+ 192.0.2.16/30, Prefix-SID: Index 55
+ 192.0.2.20/30, Prefix-SID: Index 56
+ 192.0.2.24/30, Prefix-SID: Index 57
+
+ 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
+ 7, and the Index value in the Prefix-SID Sub-TLV would be set to 51.
+
+6. Adjacency Segment Identifier (Adj-SID)
+
+ An Adjacency Segment Identifier (Adj-SID) represents a router
+ adjacency in Segment Routing.
+
+6.1. Adj-SID Sub-TLV
+
+ 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.
+ The Adj-SID Sub-TLV has the following format:
+
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Type | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Flags | Reserved | MT-ID | Weight |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | SID/Label/Index (variable) |
+ +---------------------------------------------------------------+
+
+ where:
+
+ Type: 2
+
+ Length: 7 or 8 octets, depending on the V-Flag
+
+ Flags: Single-octet field containing the following flags:
+
+
+ 0 1 2 3 4 5 6 7
+ +-+-+-+-+-+-+-+-+
+ |B|V|L|G|P| |
+ +-+-+-+-+-+-+-+-+
+
+ where:
+
+ B-Flag: Backup Flag. If set, the Adj-SID refers to an
+ adjacency that is eligible for protection (e.g., using IP
+ Fast Reroute or MPLS-FRR (MPLS-Fast Reroute) as described
+ in Section 2.1 of [RFC8402].
+
+ V-Flag: Value/Index Flag. If set, then the Adj-SID carries
+ an absolute value. If not set, then the Adj-SID carries
+ an index.
+
+ L-Flag: Local/Global Flag. If set, then the value/index
+ carried by the Adj-SID has local significance. If not
+ set, then the value/index carried by this sub-TLV has
+ global significance.
+
+ G-Flag: Group Flag. When set, the G-Flag indicates that
+ the Adj-SID refers to a group of adjacencies (and
+ therefore MAY be assigned to other adjacencies as well).
+
+ P-Flag: Persistent Flag. When set, the P-Flag indicates
+ that the Adj-SID is persistently allocated, i.e., the
+ Adj-SID value remains consistent across router restart
+ and/or interface flap.
+
+ Other bits: Reserved. These MUST be zero when sent and are
+ ignored when received.
+
+ Reserved: SHOULD be set to 0 on transmission and MUST be ignored
+ on reception
+
+ MT-ID: Multi-Topology ID (as defined in [RFC4915]
+
+ Weight: Weight used for load-balancing purposes. The use of the
+ weight is defined in [RFC8402].
+
+ SID/Index/Label: As described in Section 5
+
+ 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
+ protection by an FRR mechanism (IP or MPLS) as described in
+ Section 3.5 of [RFC8402].
+
+ An SR-capable router MAY allocate more than one Adj-SID to an
+ adjacency.
+
+ An SR-capable router MAY allocate the same Adj-SID to different
+ adjacencies.
+
+ 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.
+
+6.2. LAN Adj-SID Sub-TLV
+
+ The LAN Adjacency SID is an optional sub-TLV of the Extended Link TLV
+ defined in [RFC7684]. It MAY appear multiple times in the Extended
+ Link TLV. It is used to advertise a SID/Label for an adjacency to a
+ 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 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Type | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Flags | Reserved | MT-ID | Weight |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Neighbor ID |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | SID/Label/Index (variable) |
+ +---------------------------------------------------------------+
+
+ where:
+
+ Type: 3
+
+ Length: 11 or 12 octets, depending on the V-Flag
+
+ Flags: Same as in Section 6.1
+
+ Reserved: SHOULD be set to 0 on transmission and MUST be ignored
+ on reception
+
+ MT-ID: Multi-Topology ID (as defined in [RFC4915])
+
+ Weight: Weight used for load-balancing purposes. The use of the
+ weight is defined in [RFC8402].
+
+ Neighbor ID: The Router ID of the neighbor for which the LAN
+ Adjacency SID is advertised
+
+ SID/Index/Label: As described in Section 5
+
+ When the P-Flag is not set, the LAN Adjacency SID MAY be persistent.
+ When the P-Flag is set, the LAN Adjacency SID MUST be persistent.
+
+7. Elements of Procedure
+
+7.1. Intra-area Segment Routing in OSPFv2
+
+ An OSPFv2 router that supports Segment Routing MAY advertise Prefix-
+ SIDs for any prefix to which it is advertising reachability (e.g., a
+ loopback IP address as described in Section 5).
+
+ A Prefix-SID can also be advertised by the SR Mapping Servers (as
+ described in [RFC8661]). A Mapping Server advertises Prefix-SIDs for
+ remote prefixes that exist in the OSPFv2 routing domain. Multiple
+ Mapping Servers can advertise Prefix-SIDs for the same prefix; in
+ which case, the same Prefix-SID MUST be advertised by all of them.
+ The flooding scope of the OSPF Extended Prefix Opaque LSA that is
+ generated by the SR Mapping Server could be either area scoped or AS
+ scoped and is determined based on the configuration of the SR Mapping
+ Server.
+
+ An SR Mapping Server MUST use the OSPF Extended Prefix Range TLV when
+ advertising SIDs for prefixes. Prefixes of different route types can
+ be combined in a single OSPF Extended Prefix Range TLV advertised by
+ an SR Mapping Server. Because the OSPF Extended Prefix Range TLV
+ doesn't include a Route-Type field, as in the OSPF Extended Prefix
+ TLV, it is possible to include adjacent prefixes from different route
+ types in the OSPF Extended Prefix Range TLV.
+
+ Area-scoped OSPF Extended Prefix Range TLVs are propagated between
+ areas. Similar to propagation of prefixes between areas, an ABR only
+ 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
+ OSPF Extended Prefix Range TLV are described in Section 4.
+
+ When propagating an OSPF Extended Prefix Range TLV between areas,
+ ABRs MUST set the IA-Flag. This is used to prevent redundant
+ flooding of the OSPF Extended Prefix Range TLV between areas as
+ described in Section 4.
+
+7.2. Inter-area Segment Routing in OSPFv2
+
+ In order to support SR in a multiarea environment, OSPFv2 MUST
+ propagate Prefix-SID information between areas. The following
+ procedure is used to propagate Prefix-SIDs between areas.
+
+ 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 OSPF
+ Extended Prefix Opaque LSA as described in [RFC7684]. The flooding
+ scope of the OSPF Extended Prefix Opaque LSA type will be set to
+ area-local scope. The route type in the OSPF Extended Prefix TLV is
+ set to inter-area. The Prefix-SID Sub-TLV will be included in this
+ 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
+ area and find the advertising router associated with the best path
+ to that prefix.
+
+ 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
+ connected areas.
+
+ 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
+ originating ABR will use the Prefix-SID advertised by any other
+ router when propagating the Prefix-SID for the prefix to other
+ areas.
+
+ When an OSPF ABR advertises Type-3 Summary LSAs from an inter-area
+ route to all its connected areas, it will also originate an OSPF
+ Extended Prefix Opaque LSA as described in [RFC7684]. The flooding
+ scope of the OSPF Extended Prefix Opaque LSA type will be set to
+ area-local scope. The route type in the OSPF Extended Prefix TLV is
+ set to inter-area. The Prefix-SID Sub-TLV will be included in this
+ LSA and the Prefix-SID will be set as follows:
+
+ 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
+ to that prefix.
+
+ The ABR will then determine if such a router advertised a Prefix-
+ SID for the prefix and use it when advertising the Prefix-SID to
+ other connected areas.
+
+ 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,
+ the originating ABR will use the Prefix-SID advertised by any
+ other router when propagating the Prefix-SID for the prefix to
+ other areas.
+
+7.3. Segment Routing for External Prefixes
+
+ Type-5 LSAs are flooded domain wide. When an ASBR, which supports
+ SR, generates Type-5 LSAs, it SHOULD also originate OSPF Extended
+ Prefix Opaque LSAs as described in [RFC7684]. The flooding scope of
+ the OSPF Extended Prefix Opaque LSA type is set to AS-wide scope.
+ The route type in the OSPF Extended Prefix TLV is set to external.
+ The Prefix-SID Sub-TLV is included in this LSA and the Prefix-SID
+ value will be set to the SID that has been reserved for that prefix.
+
+ When a Not-So-Stubby Area (NSSA) [RFC3101] ABR translates Type-7 LSAs
+ into Type-5 LSAs, it SHOULD also advertise the Prefix-SID for the
+ prefix. The NSSA ABR determines its best path to the prefix
+ advertised in the translated Type-7 LSA and finds the advertising
+ router associated with that path. If the advertising router has
+ advertised a Prefix-SID for the prefix, then the NSSA ABR uses it
+ when advertising the Prefix-SID for the Type-5 prefix. Otherwise,
+ the Prefix-SID advertised by any other router will be used.
+
+7.4. Advertisement of Adj-SID
+
+ The Adjacency Segment Routing Identifier (Adj-SID) is advertised
+ using the Adj-SID Sub-TLV as described in Section 6.
+
+7.4.1. Advertisement of Adj-SID on Point-to-Point Links
+
+ An Adj-SID MAY be advertised for any adjacency on a point-to-point
+ (P2P) link that is in neighbor state 2-Way or higher. If the
+ adjacency on a P2P link transitions from the FULL state, then the
+ Adj-SID for that adjacency MAY be removed from the area. If the
+ adjacency transitions to a state lower than 2-Way, then the Adj-SID
+ Advertisement MUST be withdrawn from the area.
+
+7.4.2. Adjacency SID on Broadcast or NBMA Interfaces
+
+ Broadcast, NBMA, or hybrid [RFC6845] networks in OSPF are represented
+ by a star topology where the Designated Router (DR) is the central
+ point to which all other routers on the broadcast, NBMA, or hybrid
+ network connect. As a result, routers on the broadcast, NBMA, or
+ hybrid network advertise only their adjacency to the DR. Routers
+ that do not act as DR do not form or advertise adjacencies with each
+ other. They do, however, maintain 2-Way adjacency state with each
+ other and are directly reachable.
+
+ When Segment Routing is used, each router on the broadcast, NBMA, or
+ hybrid network MAY advertise the Adj-SID for its adjacency to the DR
+ using the Adj-SID Sub-TLV as described in Section 6.1.
+
+ SR-capable routers MAY also advertise a LAN Adjacency SID for other
+ neighbors (e.g., Backup Designated Router, DR-OTHER, etc.) on the
+ broadcast, NBMA, or hybrid network using the LAN Adj-SID Sub-TLV as
+ described in Section 6.2.
+
+8. IANA Considerations
+
+ This specification updates several existing OSPF registries and
+ creates a new IGP registry.
+
+8.1. OSPF Router Information (RI) TLVs Registry
+
+ The following values have been allocated:
+
+ +-------+---------------------+---------------+
+ | 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 |
+ +-------+---------------------+---------------+
+
+ Table 1: OSPF Router Information (RI) TLVs
+
+8.2. OSPFv2 Extended Prefix Opaque LSA TLVs Registry
+
+ The following values have been allocated:
+
+ +-------+--------------------------------+---------------+
+ | 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
+
+ The following values have been allocated:
+
+ +-------+--------------------+---------------+
+ | Value | Description | Reference |
+ +=======+====================+===============+
+ | 1 | SID/Label Sub-TLV | This document |
+ +-------+--------------------+---------------+
+ | 2 | Prefix-SID Sub-TLV | This document |
+ +-------+--------------------+---------------+
+
+ Table 3: OSPFv2 Extended Prefix TLV Sub-TLVs
+
+8.4. OSPFv2 Extended Link TLV Sub-TLVs Registry
+
+ The following initial values have been allocated:
+
+ +-------+---------------------------+---------------+
+ | 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 |
+ +-------+---------------------------+---------------+
+
+ Table 4: OSPFv2 Extended Link TLV Sub-TLVs
+
+8.5. IGP Algorithm Types Registry
+
+ IANA has set up a subregistry called "IGP Algorithm Type" under the
+ "Interior Gateway Protocol (IGP) Parameters" registry. The
+ registration policy for this registry is "Standards Action"
+ ([RFC8126] and [RFC7120]).
+
+ Values in this registry come from the range 0-255.
+
+ The initial values in the IGP Algorithm Type registry are as follows:
+
+ +-------+--------------------------------------------+-----------+
+ | 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. | |
+ +-------+--------------------------------------------+-----------+
+
+ Table 5: IGP Algorithm Types
+
+9. TLV/Sub-TLV Error Handling
+
+ 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
+
+ With the OSPFv2 Segment Routing extensions defined herein, OSPFv2
+ will now program the MPLS data plane [RFC3031] in addition to the IP
+ data plane. Previously, LDP [RFC5036] or another label distribution
+ mechanism was required to advertise MPLS labels and program the MPLS
+ data plane.
+
+ In general, the same types of attacks that can be carried out on the
+ IP control plane can be carried out on the MPLS control plane
+ resulting in traffic being misrouted in the respective data planes.
+ However, the latter can be more difficult to detect and isolate.
+
+ Existing security extensions as described in [RFC2328] and [RFC7684]
+ apply to these Segment Routing extensions. While OSPF is under a
+ single administrative domain, there can be deployments where
+ potential attackers have access to one or more networks in the OSPF
+ routing domain. In these deployments, stronger authentication
+ mechanisms such as those specified in [RFC7474] SHOULD be used.
+
+ Implementations MUST assure that malformed TLVs and sub-TLVs defined
+ in this document are detected and do not provide a vulnerability for
+ attackers to crash the OSPFv2 router or routing process. Reception
+ of malformed TLVs or sub-TLVs SHOULD be counted and/or logged for
+ further analysis. Logging of malformed TLVs and sub-TLVs SHOULD be
+ rate limited to prevent a Denial of Service (DoS) attack (distributed
+ or otherwise) from overloading the OSPF control plane.
+
+11. References
+
+11.1. Normative References
+
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
+ Requirement Levels", BCP 14, RFC 2119,
+ DOI 10.17487/RFC2119, March 1997,
+ <https://www.rfc-editor.org/info/rfc2119>.
+
+ [RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328,
+ DOI 10.17487/RFC2328, April 1998,
+ <https://www.rfc-editor.org/info/rfc2328>.
+
+ [RFC3101] Murphy, P., "The OSPF Not-So-Stubby Area (NSSA) Option",
+ RFC 3101, DOI 10.17487/RFC3101, January 2003,
+ <https://www.rfc-editor.org/info/rfc3101>.
+
+ [RFC4915] Psenak, P., Mirtorabi, S., Roy, A., Nguyen, L., and P.
+ Pillay-Esnault, "Multi-Topology (MT) Routing in OSPF",
+ RFC 4915, DOI 10.17487/RFC4915, June 2007,
+ <https://www.rfc-editor.org/info/rfc4915>.
+
+ [RFC6845] Sheth, N., Wang, L., and J. Zhang, "OSPF Hybrid Broadcast
+ and Point-to-Multipoint Interface Type", RFC 6845,
+ DOI 10.17487/RFC6845, January 2013,
+ <https://www.rfc-editor.org/info/rfc6845>.
+
+ [RFC7120] Cotton, M., "Early IANA Allocation of Standards Track Code
+ Points", BCP 100, RFC 7120, DOI 10.17487/RFC7120, January
+ 2014, <https://www.rfc-editor.org/info/rfc7120>.
+
+ [RFC7684] Psenak, P., Gredler, H., Shakir, R., Henderickx, W.,
+ Tantsura, J., and A. Lindem, "OSPFv2 Prefix/Link Attribute
+ Advertisement", RFC 7684, DOI 10.17487/RFC7684, November
+ 2015, <https://www.rfc-editor.org/info/rfc7684>.
+
+ [RFC7770] Lindem, A., Ed., Shen, N., Vasseur, JP., Aggarwal, R., and
+ S. Shaffer, "Extensions to OSPF for Advertising Optional
+ Router Capabilities", RFC 7770, DOI 10.17487/RFC7770,
+ February 2016, <https://www.rfc-editor.org/info/rfc7770>.
+
+ [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for
+ Writing an IANA Considerations Section in RFCs", BCP 26,
+ RFC 8126, DOI 10.17487/RFC8126, June 2017,
+ <https://www.rfc-editor.org/info/rfc8126>.
+
+ [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>.
+
+ [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L.,
+ Decraene, B., Litkowski, S., and R. Shakir, "Segment
+ Routing Architecture", RFC 8402, DOI 10.17487/RFC8402,
+ 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.,
+ "Security Extension for OSPFv2 When Using Manual Key
+ Management", RFC 7474, DOI 10.17487/RFC7474, April 2015,
+ <https://www.rfc-editor.org/info/rfc7474>.
+
+ [RFC7855] Previdi, S., Ed., Filsfils, C., Ed., Decraene, B.,
+ Litkowski, S., Horneffer, M., and R. Shakir, "Source
+ Packet Routing in Networking (SPRING) Problem Statement
+ and Requirements", RFC 7855, DOI 10.17487/RFC7855, May
+ 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
+
+ Peter Psenak (editor)
+ Cisco Systems, Inc.
+ Apollo Business Center, Mlynske nivy 43
+ 821 09 Bratislava
+ Slovakia
+
+ Email: ppsenak@cisco.com
+
+
+ Stefano Previdi (editor)
+ Cisco Systems, Inc.
+ Via Del Serafico, 200
+ 00142 Rome
+ Italy
+
+ Email: stefano@previdi.net
+
+
+ Clarence Filsfils
+ Cisco Systems, Inc.
+ Brussels
+ Belgium
+
+ Email: cfilsfil@cisco.com
+
+
+ Hannes Gredler
+ RtBrick Inc.
+
+ Email: hannes@rtbrick.com
+
+
+ Rob Shakir
+ Google, Inc.
+ 1600 Amphitheatre Parkway
+ Mountain View, CA 94043
+ United States of America
+
+ Email: robjs@google.com
+
+
+ Wim Henderickx
+ Nokia
+ Copernicuslaan 50
+ 2018 Antwerp
+ Belgium
+
+ Email: wim.henderickx@nokia.com
+
+
+ Jeff Tantsura
+ Apstra, Inc.
+
+ Email: jefftant.ietf@gmail.com