draft-ietf-ospf-ospfv3-segment-routing-extensions-14.txt   draft-ietf-ospf-ospfv3-segment-routing-extensions-15.txt 
Open Shortest Path First IGP P. Psenak, Ed. Open Shortest Path First IGP P. Psenak, Ed.
Internet-Draft C. Filsfils Internet-Draft C. Filsfils
Intended status: Standards Track Cisco Systems, Inc. Intended status: Standards Track Cisco Systems, Inc.
Expires: February 3, 2019 S. Previdi, Ed. Expires: February 4, 2019 S. Previdi, Ed.
Individual Individual
H. Gredler H. Gredler
RtBrick Inc. RtBrick Inc.
R. Shakir R. Shakir
Google, Inc. Google, Inc.
W. Henderickx W. Henderickx
Nokia Nokia
J. Tantsura J. Tantsura
Nuage Networks Nuage Networks
August 2, 2018 August 3, 2018
OSPFv3 Extensions for Segment Routing OSPFv3 Extensions for Segment Routing
draft-ietf-ospf-ospfv3-segment-routing-extensions-14 draft-ietf-ospf-ospfv3-segment-routing-extensions-15
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.
skipping to change at page 2, line 7 skipping to change at page 2, line 7
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 February 3, 2019. This Internet-Draft will expire on February 4, 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
skipping to change at page 2, line 41 skipping to change at page 2, line 41
3.2. SID/Label Range TLV . . . . . . . . . . . . . . . . . . . 6 3.2. SID/Label Range TLV . . . . . . . . . . . . . . . . . . . 6
3.3. SR Local Block TLV . . . . . . . . . . . . . . . . . . . 8 3.3. SR Local Block TLV . . . . . . . . . . . . . . . . . . . 8
3.4. SRMS Preference TLV . . . . . . . . . . . . . . . . . . . 10 3.4. SRMS Preference TLV . . . . . . . . . . . . . . . . . . . 10
4. OSPFv3 Extended Prefix Range TLV . . . . . . . . . . . . . . 11 4. OSPFv3 Extended Prefix Range TLV . . . . . . . . . . . . . . 11
5. Prefix SID Sub-TLV . . . . . . . . . . . . . . . . . . . . . 14 5. Prefix SID Sub-TLV . . . . . . . . . . . . . . . . . . . . . 14
6. Adjacency Segment Identifier (Adj-SID) . . . . . . . . . . . 17 6. Adjacency Segment Identifier (Adj-SID) . . . . . . . . . . . 17
6.1. Adj-SID Sub-TLV . . . . . . . . . . . . . . . . . . . . . 17 6.1. Adj-SID Sub-TLV . . . . . . . . . . . . . . . . . . . . . 17
6.2. LAN Adj-SID Sub-TLV . . . . . . . . . . . . . . . . . . . 19 6.2. LAN Adj-SID Sub-TLV . . . . . . . . . . . . . . . . . . . 19
7. Elements of Procedure . . . . . . . . . . . . . . . . . . . . 20 7. Elements of Procedure . . . . . . . . . . . . . . . . . . . . 20
7.1. Intra-area Segment routing in OSPFv3 . . . . . . . . . . 20 7.1. Intra-area Segment routing in OSPFv3 . . . . . . . . . . 20
7.2. Inter-area Segment routing in OSPFv3 . . . . . . . . . . 22 7.2. Inter-area Segment routing in OSPFv3 . . . . . . . . . . 21
7.3. Segment Routing for External Prefixes . . . . . . . . . . 23 7.3. Segment Routing for External Prefixes . . . . . . . . . . 22
7.4. Advertisement of Adj-SID . . . . . . . . . . . . . . . . 23 7.4. Advertisement of Adj-SID . . . . . . . . . . . . . . . . 23
7.4.1. Advertisement of Adj-SID on Point-to-Point Links . . 23 7.4.1. Advertisement of Adj-SID on Point-to-Point Links . . 23
7.4.2. Adjacency SID on Broadcast or NBMA Interfaces . . . . 23 7.4.2. Adjacency SID on Broadcast or NBMA Interfaces . . . . 23
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 24 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23
8.1. OSPFv3 Extended-LSA TLV Registry . . . . . . . . . . . . 24 8.1. OSPFv3 Extended-LSA TLV Registry . . . . . . . . . . . . 23
8.2. OSPFv3 Extended-LSA Sub-TLV registry . . . . . . . . . . 24 8.2. OSPFv3 Extended-LSA Sub-TLV registry . . . . . . . . . . 24
9. Security Considerations . . . . . . . . . . . . . . . . . . . 24 9. Security Considerations . . . . . . . . . . . . . . . . . . . 24
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 25 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 24
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 25 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 25
11.1. Normative References . . . . . . . . . . . . . . . . . . 25 11.1. Normative References . . . . . . . . . . . . . . . . . . 25
11.2. Informative References . . . . . . . . . . . . . . . . . 26 11.2. Informative References . . . . . . . . . . . . . . . . . 26
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 26 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 26
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
skipping to change at page 3, line 28 skipping to change at page 3, line 28
most cases, is a one-hop path. SR's control-plane can be applied to most cases, is a one-hop path. SR's control-plane can be applied to
both IPv6 and MPLS data-planes, and does not require any additional both IPv6 and MPLS data-planes, and does not require any additional
signalling (other than IGP extensions). The IPv6 data plane is out signalling (other than IGP extensions). The IPv6 data plane is out
of the scope of this specification - OSPFv3 extension for SR with of the scope of this specification - OSPFv3 extension for SR with
IPv6 data plane will be specified in a separate document. When used IPv6 data plane will be specified in a separate document. When used
in MPLS networks, SR paths do not require any LDP or RSVP-TE in MPLS networks, SR paths do not require any LDP or RSVP-TE
signalling. However, SR can interoperate in the presence of LSPs signalling. However, SR can interoperate in the presence of LSPs
established with RSVP or LDP. established with RSVP or LDP.
There are additional segment types, e.g., Binding SID defined in There are additional segment types, e.g., Binding SID defined in
[I-D.ietf-spring-segment-routing]. [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 Segment Routing architecture is described in [RFC8402].
[I-D.ietf-spring-segment-routing].
Segment Routing use cases are described in [RFC7855]. Segment Routing use cases are described in [RFC7855].
2. Segment Routing Identifiers 2. Segment Routing Identifiers
Segment Routing defines various types of Segment Identifiers (SIDs): Segment Routing defines various types of Segment Identifiers (SIDs):
Prefix-SID, Adjacency-SID, LAN Adjacency SID, and Binding SID. Prefix-SID, Adjacency-SID, LAN Adjacency SID, and Binding SID.
2.1. SID/Label Sub-TLV 2.1. SID/Label Sub-TLV
The SID/Label Sub-TLV appears in multiple TLVs or Sub-TLVs defined The SID/Label Sub-TLV appears in multiple TLVs or Sub-TLVs defined
later in this document. It is used to advertise the SID or label later in this document. It is used to advertise the SID or label
associated with a prefix or adjacency. The SID/Label 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID/Label (variable) | | SID/Label (variable) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
Type: 7 Type: 7
Length: Variable, 3 or 4 octets Length: Variable, 3 or 4 octets
skipping to change at page 11, line 16 skipping to change at page 11, line 16
used. If the SRMS Preference TLV appears in multiple OSPFv3 Router used. If the SRMS Preference TLV appears in multiple OSPFv3 Router
Information Opaque LSAs that have the same flooding scope, the SRMS Information Opaque LSAs that have the same flooding scope, the SRMS
Preference TLV in the OSPFv3 Router Information Opaque LSA with the Preference 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 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 a different area then consumers of the SRMS advertisements. If in different areas than consumers of the SRMS advertisements. If
the SRMS advertisements from the SRMS server are only used inside the SRMS advertisements from an SRMS server are only used inside the SRMS
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 4. OSPFv3 Extended Prefix Range TLV
In some cases it is useful to advertise attributes for a range of In some cases it is useful to advertise attributes for a range of
prefixes. 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 where we [I-D.ietf-spring-segment-routing-ldp-interop], is an example of where
need a single advertisement to advertise SIDs for multiple prefixes we need a single advertisement to advertise SIDs for multiple
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
following LSAs defined in [I-D.ietf-ospf-ospfv3-lsa-extend]: following LSAs defined in [RFC8362]:
E-Intra-Area-Prefix-LSA E-Intra-Area-Prefix-LSA
E-Inter-Area-Prefix-LSA E-Inter-Area-Prefix-LSA
E-AS-External-LSA E-AS-External-LSA
E-Type-7-LSA E-Type-7-LSA
Multiple OSPFv3 Extended Prefix Range TLVs MAY be advertised in each Multiple OSPFv3 Extended Prefix Range TLVs MAY be advertised in each
skipping to change at page 12, line 40 skipping to change at page 12, line 40
AF: 0 - IPv4 unicast AF: 0 - IPv4 unicast
AF: 1 - IPv6 unicast AF: 1 - IPv6 unicast
Range size: Represents the number of prefixes that are covered by Range size: Represents the number of prefixes that are covered by
the advertisement. The Range Size MUST NOT exceed the number of the advertisement. The Range Size MUST NOT exceed the number of
prefixes that could be satisfied by the prefix length without prefixes that could be satisfied by the prefix length without
including: including:
IPv4 multicast address range (224.0.0.0/3), if the AF is IPv4 Addresses from the IPv4 multicast address range (224.0.0.0/3),
unicast if the AF is IPv4 unicast
Addresses from other than the IPv6 unicast address class, if Addresses other than the IPv6 unicast addresses, if the AF is
the AF is IPv6 unicast IPv6 unicast
Flags: Single octet field. The following flags are defined: Flags: Single octet field. The following flags are defined:
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+--+--+--+--+--+--+--+--+ +--+--+--+--+--+--+--+--+
|IA| | | | | | | | |IA| | | | | | | |
+--+--+--+--+--+--+--+--+ +--+--+--+--+--+--+--+--+
where: where:
IA-Flag: Inter-Area flag. If set, advertisement is of inter- IA-Flag: Inter-Area flag. If set, advertisement is of inter-
area type. An ABR that is advertising the OSPFv3 Extended area type. An Are Border Router (ABR) that is advertising the
Prefix Range TLV between areas MUST set this bit. OSPFv3 Extended Prefix Range TLV between areas MUST set this
bit.
This bit is used to prevent redundant flooding of Prefix Range This bit is used to prevent redundant flooding of Prefix Range
TLVs between areas as follows: TLVs between areas as follows:
An ABR only propagates an inter-area Prefix Range An ABR only propagates an inter-area Prefix Range
advertisement from the backbone area to connected non- advertisement from the backbone area to connected non-
backbone areas if the advertisement is considered to be the backbone areas if the advertisement is considered to be the
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:
skipping to change at page 14, line 8 skipping to change at page 14, line 8
even multiple of 32-bit words, padded with zeroed bits as even multiple of 32-bit words, padded with zeroed bits as
necessary. This encoding consumes ((PrefixLength + 31) / 32) necessary. This encoding consumes ((PrefixLength + 31) / 32)
32-bit words. 32-bit words.
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.
5. Prefix SID Sub-TLV 5. Prefix SID Sub-TLV
The Prefix SID Sub-TLV is a Sub-TLV of the following OSPFv3 TLVs as The Prefix SID Sub-TLV is a Sub-TLV of the following OSPFv3 TLVs as
defined in [I-D.ietf-ospf-ospfv3-lsa-extend] and in Section 4: defined in [RFC8362] and in Section 4:
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 15, line 43 skipping to change at page 15, line 43
SID/Index/Label: According to the V and L flags, it contains SID/Index/Label: According to the V and L flags, it contains
either: either:
A 32-bit index defining the offset in the SID/Label space A 32-bit index defining the offset in the SID/Label space
advertised by this router. advertised by this router.
A 24-bit label where the 20 rightmost bits are used for A 24-bit label where the 20 rightmost bits are used for
encoding the label value. encoding the label value.
If an OSPFv3 router advertises multiple Prefix-SIDs for the same If an OSPFv3 router advertises multiple Prefix-SIDs for the same
prefix, topology and algorithm, all of them MUST be ignored. prefix, topology, and algorithm, all of them MUST be ignored.
When calculating the outgoing label for the prefix, the router MUST When calculating the outgoing label for the prefix, the router MUST
take into account, as described below, the E, NP, and M flags take into account, as described below, the E, NP, and M flags
advertised by the next-hop router if that router advertised the SID advertised by the next-hop router if that router advertised the SID
for the prefix. This MUST be done regardless of whether the next-hop for the prefix. This MUST be done regardless of whether the next-hop
router contributes to the best path to the prefix. router contributes to the best path to the prefix.
The NP-Flag (No-PHP) MUST be set and the E-flag MUST be clear for The NP-Flag (No-PHP) MUST be set and the E-flag MUST be clear for
Prefix-SIDs allocated to prefixes that are propagated between areas Prefix-SIDs allocated to prefixes that are propagated between areas
by an ABR based on intra-area or inter-area reachability, unless the by an ABR based on intra-area or inter-area reachability, unless the
advertised prefix is directly attached to such ABR. advertised prefix is directly attached to such ABR.
The NP-Flag (No-PHP) MUST be set and the E-flag MUST be clear for The NP-Flag (No-PHP) MUST be set and the E-flag MUST be clear for
Prefix-SIDs allocated to redistributed prefixes, unless the Prefix-SIDs allocated to redistributed prefixes, unless the
redistributed prefix is directly attached to the advertising ASBR. redistributed prefix is directly attached to the advertising
Autonomous System Boundary Router (ASBR).
If the NP-Flag is not set, then any upstream neighbor of the Prefix- If the NP-Flag is not set, then any upstream neighbor of the Prefix-
SID originator MUST pop the Prefix-SID. This is equivalent to the SID originator MUST pop the Prefix-SID. This is equivalent to the
penultimate hop popping mechanism used in the MPLS dataplane. If the penultimate hop popping mechanism used in the MPLS dataplane. If the
NP-flag is not set, then the received E-flag is ignored. NP-flag is not set, then the received E-flag is ignored.
If the NP-flag is set then: If the NP-flag is set then:
If the E-flag is not set, then any upstream neighbor of the If the E-flag is not set, then any upstream neighbor of the
Prefix-SID originator MUST keep the Prefix-SID on top of the Prefix-SID originator MUST keep the Prefix-SID on top of the
skipping to change at page 16, line 33 skipping to change at page 16, line 34
(prefix propagation from one area to another) or at an AS Boundary (prefix propagation from one area to another) or at an AS Boundary
Router (prefix propagation from one domain to another). Router (prefix propagation from one domain to another).
If the E-flag is set, then any upstream neighbor of the Prefix-SID If the E-flag is set, then any upstream neighbor of the Prefix-SID
originator MUST replace the Prefix-SID with an Explicit-NULL originator MUST replace the Prefix-SID with an Explicit-NULL
label. This is useful, e.g., when the originator of the Prefix- label. This is useful, e.g., when the originator of the Prefix-
SID is the final destination for the related prefix and the SID is the final destination for the related prefix and the
originator wishes to receive the packet with the original EXP originator wishes to receive the packet with the original EXP
bits. bits.
When the M-Flag is set, the NP-flag and the E-flag MUST be ignored at When the M-Flag is set, the NP-flag and the E-flag MUST be ignored on
reception. reception.
As the Mapping Server does not specify the originator of a prefix As the Mapping Server does not specify the originator of a prefix
advertisement, it is not possible to determine PHP behavior solely advertisement, it is not possible to determine PHP behavior solely
based on the Mapping Server advertisement. However, PHP behavior based on the Mapping Server advertisement. However, PHP behavior
SHOULD be done in following cases: SHOULD be done in following cases:
The Prefix is intra-area type and the downstream neighbor is the The Prefix is intra-area type and the downstream neighbor is the
originator of the prefix. originator of the prefix.
The Prefix is inter-area type and the downstream neighbor is an The Prefix is inter-area type and the downstream neighbor is an
ABR, which is advertising prefix reachability and is setting the ABR, which is advertising prefix reachability and is setting the
LA-bit in the Prefix Options as described in LA-bit in the Prefix Options as described in [RFC8362].
[I-D.ietf-ospf-ospfv3-lsa-extend].
The Prefix is external type and the downstream neighbor is an The Prefix is external type and the downstream neighbor is an
ASBR, which is advertising prefix reachability and is setting the ASBR, which is advertising prefix reachability and is setting the
LA-bit in the Prefix Options as described in LA-bit in the Prefix Options as described in [RFC8362].
[I-D.ietf-ospf-ospfv3-lsa-extend].
When a Prefix-SID is advertised in the OSPFv3 Extended Prefix Range When a Prefix-SID is advertised in the OSPFv3 Extended Prefix Range
TLV, then the value advertised in the Prefix SID Sub-TLV is TLV, then the value advertised in the Prefix SID Sub-TLV is
interpreted as a starting SID/Label value. interpreted as a starting SID/Label value.
Example 1: If the following router addresses (loopback addresses) Example 1: If the following router addresses (loopback addresses)
need to be mapped into the corresponding Prefix SID indexes: need to be mapped into the corresponding Prefix SID indexes:
Router-A: 2001:DB8::1/128, Prefix-SID: Index 1 Router-A: 2001:DB8::1/128, Prefix-SID: Index 1
Router-B: 2001:DB8::2/128, Prefix-SID: Index 2 Router-B: 2001:DB8::2/128, Prefix-SID: Index 2
skipping to change at page 17, line 47 skipping to change at page 17, line 45
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) 6. Adjacency Segment Identifier (Adj-SID)
An Adjacency Segment Identifier (Adj-SID) represents a router An Adjacency Segment Identifier (Adj-SID) represents a router
adjacency in Segment Routing. adjacency in Segment Routing.
6.1. Adj-SID Sub-TLV 6.1. Adj-SID Sub-TLV
Adj-SID is an optional Sub-TLV of the Router-Link TLV as defined in The Adj-SID Sub-TLV is an optional Sub-TLV of the Router-Link TLV as
[I-D.ietf-ospf-ospfv3-lsa-extend]. It MAY appear multiple times in defined in [RFC8362]. It MAY appear multiple times in the Router-
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Weight | Reserved | | Flags | Weight | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID/Label/Index (variable) | | SID/Label/Index (variable) |
+---------------------------------------------------------------+ +---------------------------------------------------------------+
skipping to change at page 18, line 32 skipping to change at page 18, line 32
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
|B|V|L|G|P| | |B|V|L|G|P| |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
where: where:
B-Flag: Backup Flag. If set, the Adj-SID refers to an B-Flag: Backup Flag. If set, the Adj-SID refers to an
adjacency that is eligible for protection (e.g., using IPFRR or adjacency that is eligible for protection (e.g., using IPFRR or
MPLS-FRR) as described in section 3.5 of MPLS-FRR) as described in section 3.5 of [RFC8402].
[I-D.ietf-spring-segment-routing].
The V-Flag: Value/Index Flag. If set, then the Adj-SID carries The V-Flag: Value/Index Flag. If set, then the Adj-SID carries
an absolute value. If not set, then the Adj-SID carries an an absolute value. If not set, then the Adj-SID carries an
index. index.
The L-Flag: Local/Global Flag. If set, then the value/index The L-Flag: Local/Global Flag. If set, then the value/index
carried by the Adj-SID has local significance. If not set, carried by the Adj-SID has local significance. If not set,
then the value/index carried by this Sub-TLV has global then the value/index carried by this Sub-TLV has global
significance. significance.
The G-Flag: Group Flag. When set, the G-Flag indicates that The G-Flag: Group Flag. When set, the G-Flag indicates that
the Adj-SID refers to a group of adjacencies (and therefore MAY the Adj-SID refers to a group of adjacencies (and therefore MAY
be assigned to other adjacencies as well). be assigned to other adjacencies as well).
P-Flag. Persistent flag. When set, the P-Flag indicates that P-Flag. Persistent flag. When set, the P-Flag indicates that
the Adj-SID is persistently allocated, i.e., the Adj-SID value the Adj-SID is persistently allocated, i.e., the Adj-SID value
remains consistent across router restart and/or interface flap. remains the same across router restart and/or interface flap.
Other bits: Reserved. These MUST be zero when sent and are Other bits: Reserved. These MUST be zero when sent and are
ignored when received. ignored when received.
Reserved: SHOULD be set to 0 on transmission and MUST be ignored Reserved: SHOULD be set to 0 on transmission and MUST be ignored
on reception. on reception.
Weight: Weight used for load-balancing purposes. The use of the Weight: Weight used for load-balancing purposes. The use of the
weight is defined in [I-D.ietf-spring-segment-routing]. weight is defined in [RFC8402].
SID/Index/Label: 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.
An SR-capable router MAY allocate an Adj-SID for each of its An SR-capable router MAY allocate an Adj-SID for each of its
adjacencies and set the B-Flag when the adjacency is eligible for adjacencies and set the B-Flag when the adjacency is eligible for
protection by an FRR mechanism (IP or MPLS) as described in protection by an FRR mechanism (IP or MPLS) as described in
[I-D.ietf-spring-segment-routing]. [RFC8402].
An SR-capable router MAY allocate more than one Adj-SID to an An SR-capable router MAY allocate more than one Adj-SID to an
adjacency adjacency.
An SR-capable router MAY allocate the same Adj-SID to different An SR-capable router MAY allocate the same Adj-SID to different
adjacencies adjacencies.
When the P-flag is not set, the Adj-SID MAY be persistent. When the When the P-flag is not set, the Adj-SID MAY be persistent. When the
P-flag is set, the Adj-SID MUST be persistent. P-flag is set, the Adj-SID MUST be persistent.
6.2. LAN Adj-SID Sub-TLV 6.2. LAN Adj-SID Sub-TLV
LAN Adj-SID is an optional Sub-TLV of the Router-Link TLV. It MAY The LAN Adj-SID Sub-TLV is an optional Sub-TLV of the Router-Link
appear multiple times in the Router-Link TLV. It is used to TLV. It MAY appear multiple times in the Router-Link TLV. It is
advertise a SID/Label for an adjacency to a non-DR router on a used to advertise a SID/Label for an adjacency to a non-DR router on
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Weight | Reserved | | Flags | Weight | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Neighbor ID | | Neighbor ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at page 20, line 26 skipping to change at page 20, line 26
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 6.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 [I-D.ietf-spring-segment-routing]. 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.
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:
skipping to change at page 21, line 12 skipping to change at page 21, line 12
SIDs for any prefix to which it is advertising reachability (e.g., a SIDs for any prefix to which it is advertising reachability (e.g., a
loopback IP address as described in Section 5). loopback IP address as described in Section 5).
A Prefix-SID can also be advertised by 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 SID 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 area flooding scope is needed, an E-Intra-Area-Prefix-LSA [RFC8362]
([I-D.ietf-ospf-ospfv3-lsa-extend]) is used. If autonomous system is used. If autonomous system flooding scope is needed, an E-AS-
flooding scope is needed, an E-AS-External-LSA External-LSA [RFC8362] is used.
([I-D.ietf-ospf-ospfv3-lsa-extend]) is used.
When a Prefix-SID is advertised by the Mapping Server, which is When a Prefix-SID is advertised by the Mapping Server, which is
indicated by the M-flag in the Prefix-SID Sub-TLV (Section 5), the indicated by the M-flag in the Prefix-SID Sub-TLV (Section 5), the
route type as implied by the LSA type is ignored and the Prefix-SID route type as implied by the LSA type is ignored and the Prefix-SID
is bound to the corresponding prefix independent of the route type. is bound to the corresponding prefix independent of the route type.
Advertisement of the Prefix-SID by the Mapping Server using 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
([I-D.ietf-ospf-ospfv3-lsa-extend]) does not itself contribute to the [RFC8362] does not itself contribute to the prefix reachability. The
prefix reachability. The NU-bit MUST be set in the PrefixOptions NU-bit MUST be set in the PrefixOptions field of the LSA which is
field of the LSA which is used by the Mapping Server to advertise SID used by the Mapping Server to advertise SID or SID Range, which
or SID Range, which prevents the advertisement from contributing to prevents the advertisement from contributing to prefix reachability.
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
skipping to change at page 22, line 12 skipping to change at page 22, line 6
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 4.
7.2. Inter-area Segment routing in OSPFv3 7.2. Inter-area Segment routing in OSPFv3
In order to support SR in a multi-area environment, OSPFv3 MUST In order to support SR in a multi-area environment, OSPFv3 MUST
propagate Prefix-SID information between areas. The following propagate Prefix-SID information between areas. The following
procedure is used 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 Prefix- area prefix to all its connected areas, it will also include the
SID Sub-TLV, as described in Section 5. The Prefix-SID value will be Prefix-SID Sub-TLV, as described in Section 5. The Prefix-SID value
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 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 5. The Prefix-SID value
will be set as follows: will be set as follows:
The ABR will look at its best path to the prefix in the 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.
skipping to change at page 24, line 38 skipping to change at page 24, line 28
will now program the MPLS data plane [RFC3031] in addition to the IP will now program the MPLS data plane [RFC3031] in addition to the IP
data plane. Previously, LDP [RFC5036] or another label distribution data plane. Previously, LDP [RFC5036] or another label distribution
mechanism was required to advertise MPLS labels and program the MPLS mechanism was required to advertise MPLS labels and program the MPLS
data plane. data plane.
In general, the same types of attacks that can be carried out on the In general, the same types of attacks that can be carried out on the
IP control plane can be carried out on the MPLS control plane IP control plane can be carried out on the MPLS control plane
resulting in traffic being misrouted in the respective data planes. resulting in traffic being misrouted in the respective data planes.
However, the latter can be more difficult to detect and isolate. However, the latter can be more difficult to detect and isolate.
Existing security extensions as described in [RFC5340] and Existing security extensions as described in [RFC5340] and [RFC8362]
[I-D.ietf-ospf-ospfv3-lsa-extend] apply to these segment routing apply to these segment routing extensions. While OSPFv3 is under a
extensions. While OSPFv3 is under a single administrative domain, single administrative domain, there can be deployments where
there can be deployments where potential attackers have access to one potential attackers have access to one or more networks in the OSPFv3
or more networks in the OSPFv3 routing domain. In these deployments, routing domain. In these deployments, stronger authentication
stronger authentication mechanisms such as those specified in mechanisms such as those specified in [RFC4552] or [RFC7166] SHOULD
[RFC4552] or [RFC7166] SHOULD 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. Acknowledgements 10. Acknowledgements
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 11. References
11.1. Normative References 11.1. Normative References
[I-D.ietf-ospf-ospfv3-lsa-extend]
Lindem, A., Roy, A., Goethals, D., Vallem, V., and F.
Baker, "OSPFv3 LSA Extendibility", draft-ietf-ospf-ospfv3-
lsa-extend-23 (work in progress), January 2018.
[I-D.ietf-spring-segment-routing]
Filsfils, C., Previdi, S., Ginsberg, L., Decraene, B.,
Litkowski, S., and R. Shakir, "Segment Routing
Architecture", draft-ietf-spring-segment-routing-15 (work
in progress), January 2018.
[I-D.ietf-spring-segment-routing-ldp-interop] [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-14 (work in draft-ietf-spring-segment-routing-ldp-interop-14 (work in
progress), July 2018. progress), July 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-14
skipping to change at page 26, line 23 skipping to change at page 26, line 5
[RFC6845] Sheth, N., Wang, L., and J. Zhang, "OSPF Hybrid Broadcast [RFC6845] Sheth, N., Wang, L., and J. Zhang, "OSPF Hybrid Broadcast
and Point-to-Multipoint Interface Type", RFC 6845, and Point-to-Multipoint Interface Type", RFC 6845,
DOI 10.17487/RFC6845, January 2013, DOI 10.17487/RFC6845, January 2013,
<https://www.rfc-editor.org/info/rfc6845>. <https://www.rfc-editor.org/info/rfc6845>.
[RFC7770] Lindem, A., Ed., Shen, N., Vasseur, JP., Aggarwal, R., and [RFC7770] Lindem, A., Ed., Shen, N., Vasseur, JP., Aggarwal, R., and
S. Shaffer, "Extensions to OSPF for Advertising Optional S. Shaffer, "Extensions to OSPF for Advertising Optional
Router Capabilities", RFC 7770, DOI 10.17487/RFC7770, Router Capabilities", RFC 7770, DOI 10.17487/RFC7770,
February 2016, <https://www.rfc-editor.org/info/rfc7770>. February 2016, <https://www.rfc-editor.org/info/rfc7770>.
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for [RFC8362] Lindem, A., Roy, A., Goethals, D., Reddy Vallem, V., and
Writing an IANA Considerations Section in RFCs", BCP 26, F. Baker, "OSPFv3 Link State Advertisement (LSA)
RFC 8126, DOI 10.17487/RFC8126, June 2017, Extensibility", RFC 8362, DOI 10.17487/RFC8362, April
<https://www.rfc-editor.org/info/rfc8126>. 2018, <https://www.rfc-editor.org/info/rfc8362>.
[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>.
11.2. Informative References 11.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,
 End of changes. 39 change blocks. 
85 lines changed or deleted 75 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/