rfc9085.original | rfc9085.txt | |||
---|---|---|---|---|
Inter-Domain Routing S. Previdi | Internet Engineering Task Force (IETF) S. Previdi | |||
Internet-Draft Huawei Technologies | Request for Comments: 9085 Huawei Technologies | |||
Intended status: Standards Track K. Talaulikar, Ed. | Category: Standards Track K. Talaulikar, Ed. | |||
Expires: October 17, 2021 C. Filsfils | ISSN: 2070-1721 C. Filsfils | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
H. Gredler | H. Gredler | |||
RtBrick Inc. | RtBrick Inc. | |||
M. Chen | M. Chen | |||
Huawei Technologies | Huawei Technologies | |||
April 15, 2021 | August 2021 | |||
BGP Link-State extensions for Segment Routing | Border Gateway Protocol - Link State (BGP-LS) Extensions for Segment | |||
draft-ietf-idr-bgp-ls-segment-routing-ext-18 | Routing | |||
Abstract | Abstract | |||
Segment Routing (SR) allows for a flexible definition of end-to-end | Segment Routing (SR) allows for a flexible definition of end-to-end | |||
paths by encoding paths as sequences of topological sub-paths, called | paths by encoding paths as sequences of topological subpaths, called | |||
"segments". These segments are advertised by routing protocols e.g. | "segments". These segments are advertised by routing protocols, | |||
by the link state routing protocols (IS-IS, OSPFv2 and OSPFv3) within | e.g., by the link-state routing protocols (IS-IS, OSPFv2, and OSPFv3) | |||
IGP topologies. | within IGP topologies. | |||
This document defines extensions to the BGP Link-state address-family | ||||
in order to carry segment routing information via BGP. | ||||
Requirements Language | ||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | This document defines extensions to the Border Gateway Protocol - | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | Link State (BGP-LS) address family in order to carry SR information | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | via BGP. | |||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | ||||
capitals, as shown here. | ||||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
provisions of BCP 78 and BCP 79. | ||||
Internet-Drafts are working documents of the Internet Engineering | This document is a product of the Internet Engineering Task Force | |||
Task Force (IETF). Note that other groups may also distribute | (IETF). It represents the consensus of the IETF community. It has | |||
working documents as Internet-Drafts. The list of current Internet- | received public review and has been approved for publication by the | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | Information about the current status of this document, any errata, | |||
and may be updated, replaced, or obsoleted by other documents at any | and how to provide feedback on it may be obtained at | |||
time. It is inappropriate to use Internet-Drafts as reference | https://www.rfc-editor.org/info/rfc9085. | |||
material or to cite them other than as "work in progress." | ||||
This Internet-Draft will expire on October 17, 2021. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2021 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
2. BGP-LS Extensions for Segment Routing . . . . . . . . . . . . 5 | 1.1. Requirements Language | |||
2.1. Node Attributes TLVs . . . . . . . . . . . . . . . . . . 5 | 2. BGP-LS Extensions for Segment Routing | |||
2.1.1. SID/Label TLV . . . . . . . . . . . . . . . . . . . . 5 | 2.1. Node Attribute TLVs | |||
2.1.2. SR Capabilities TLV . . . . . . . . . . . . . . . . . 6 | 2.1.1. SID/Label TLV | |||
2.1.3. SR Algorithm TLV . . . . . . . . . . . . . . . . . . 8 | 2.1.2. SR Capabilities TLV | |||
2.1.4. SR Local Block TLV . . . . . . . . . . . . . . . . . 8 | 2.1.3. SR-Algorithm TLV | |||
2.1.5. SRMS Preference TLV . . . . . . . . . . . . . . . . . 10 | 2.1.4. SR Local Block TLV | |||
2.2. Link Attribute TLVs . . . . . . . . . . . . . . . . . . . 11 | 2.1.5. SRMS Preference TLV | |||
2.2.1. Adjacency SID TLV . . . . . . . . . . . . . . . . . . 11 | 2.2. Link Attribute TLVs | |||
2.2.2. LAN Adjacency SID TLV . . . . . . . . . . . . . . . . 12 | 2.2.1. Adjacency SID TLV | |||
2.2.3. L2 Bundle Member Attribute TLV . . . . . . . . . . . 14 | 2.2.2. LAN Adjacency SID TLV | |||
2.3. Prefix Attribute TLVs . . . . . . . . . . . . . . . . . . 15 | 2.2.3. L2 Bundle Member Attributes TLV | |||
2.3.1. Prefix SID TLV . . . . . . . . . . . . . . . . . . . 16 | 2.3. Prefix Attribute TLVs | |||
2.3.2. Prefix Attribute Flags TLV . . . . . . . . . . . . . 17 | 2.3.1. Prefix-SID TLV | |||
2.3.3. Source Router Identifier TLV . . . . . . . . . . . . 18 | 2.3.2. Prefix Attribute Flags TLV | |||
2.3.4. Source OSPF Router-ID TLV . . . . . . . . . . . . . . 19 | 2.3.3. Source Router Identifier TLV | |||
2.3.5. Range TLV . . . . . . . . . . . . . . . . . . . . . . 20 | 2.3.4. Source OSPF Router-ID TLV | |||
2.4. Equivalent IS-IS Segment Routing TLVs/Sub-TLVs . . . . . 21 | 2.3.5. Range TLV | |||
2.5. Equivalent OSPFv2/OSPFv3 Segment Routing TLVs/Sub-TLVs . 22 | 2.4. Equivalent IS-IS Segment Routing TLVs/Sub-TLVs | |||
3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 25 | 2.5. Equivalent OSPFv2/OSPFv3 Segment Routing TLVs/Sub-TLVs | |||
3.1. TLV/Sub-TLV Code Points Summary . . . . . . . . . . . . . 25 | 3. IANA Considerations | |||
4. Manageability Considerations . . . . . . . . . . . . . . . . 25 | 3.1. TLV/Sub-TLV Code Points Summary | |||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 26 | 4. Manageability Considerations | |||
6. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 27 | 5. Security Considerations | |||
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 28 | 6. References | |||
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 28 | 6.1. Normative References | |||
8.1. Normative References . . . . . . . . . . . . . . . . . . 28 | 6.2. Informative References | |||
8.2. Informative References . . . . . . . . . . . . . . . . . 30 | Acknowledgements | |||
Contributors | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 30 | Authors' Addresses | |||
1. Introduction | 1. Introduction | |||
Segment Routing (SR) allows for a flexible definition of end-to-end | Segment Routing (SR) allows for a flexible definition of end-to-end | |||
paths by combining sub-paths called "segments". A segment can | paths by combining subpaths called "segments". A segment can | |||
represent any instruction: topological or service-based. A segment | represent any instruction: topological or service based. A segment | |||
can have a local semantic to an SR node or global semantic within a | can have a local semantic to an SR node or global semantic within a | |||
domain. Within IGP topologies, an SR path is encoded as a sequence | domain. Within IGP topologies, an SR path is encoded as a sequence | |||
of topological sub-paths, called "IGP segments". These segments are | of topological subpaths, called "IGP segments". These segments are | |||
advertised by the link-state routing protocols (IS-IS, OSPFv2 and | advertised by the link-state routing protocols (IS-IS, OSPFv2, and | |||
OSPFv3). | OSPFv3). | |||
[RFC8402] defines the Link-State IGP segments - Prefix, Node, Anycast | [RFC8402] defines the link-state IGP segments -- prefix, node, | |||
and Adjacency segments. Prefix segments, by default, represent an | anycast, and adjacency segments. Prefix segments, by default, | |||
ECMP-aware shortest-path to a prefix, as per the state of the IGP | represent an ECMP-aware shortest-path to a prefix, as per the state | |||
topology. Adjacency segments represent a hop over a specific | of the IGP topology. Adjacency segments represent a hop over a | |||
adjacency between two nodes in the IGP. A prefix segment is | specific adjacency between two nodes in the IGP. A prefix segment is | |||
typically a multi-hop path while an adjacency segment, in most of the | typically a multi-hop path while an adjacency segment, in most of the | |||
cases, is a one-hop path. Node and anycast segments are variations | cases, is a one-hop path. Node and anycast segments are variations | |||
of the prefix segment with their specific characteristics. | of the prefix segment with their specific characteristics. | |||
When Segment Routing is enabled in an IGP domain, segments are | When SR is enabled in an IGP domain, segments are advertised in the | |||
advertised in the form of Segment Identifiers (SIDs). The IGP link- | form of Segment Identifiers (SIDs). The IGP link-state routing | |||
state routing protocols have been extended to advertise SIDs and | protocols have been extended to advertise SIDs and other SR-related | |||
other SR-related information. IGP extensions are described for: IS- | information. IGP extensions are described for: IS-IS [RFC8667], | |||
IS [RFC8667], OSPFv2 [RFC8665] and OSPFv3 [RFC8666]. Using these | OSPFv2 [RFC8665], and OSPFv3 [RFC8666]. Using these extensions, SR | |||
extensions, Segment Routing can be enabled within an IGP domain. | can be enabled within an IGP domain. | |||
Segment Routing (SR) allows advertisement of single or multi-hop | SR allows advertisement of single or multi-hop paths. The flooding | |||
paths. The flooding scope for the IGP extensions for Segment routing | scope for the IGP extensions for SR is IGP area-wide. Consequently, | |||
is IGP area-wide. Consequently, the contents of a Link State | the contents of a Link-State Database (LSDB) or a Traffic Engineering | |||
Database (LSDB) or a Traffic Engineering Database (TED) has the scope | Database (TED) has the scope of an IGP area; therefore, by using the | |||
of an IGP area and therefore, by using the IGP alone it is not enough | IGP alone, it is not enough to construct segments across multiple IGP | |||
to construct segments across multiple IGP Area or AS boundaries. | area or Autonomous System (AS) boundaries. | |||
In order to address the need for applications that require | In order to address the need for applications that require | |||
topological visibility across IGP areas, or even across Autonomous | topological visibility across IGP areas, or even across ASes, the | |||
Systems (AS), the BGP-LS address-family/sub-address-family have been | BGP-LS address family / subaddress family have been defined to allow | |||
defined to allow BGP to carry Link-State information. The BGP | BGP to carry link-state information. The BGP Network Layer | |||
Network Layer Reachability Information (NLRI) encoding format for | Reachability Information (NLRI) encoding format for BGP-LS and a new | |||
BGP-LS and a new BGP Path Attribute called the BGP-LS attribute are | BGP Path Attribute called the "BGP-LS Attribute" are defined in | |||
defined in [RFC7752]. The identifying key of each Link-State object, | [RFC7752]. The identifying key of each link-state object, namely a | |||
namely a node, link, or prefix, is encoded in the NLRI and the | node, link, or prefix, is encoded in the NLRI, and the properties of | |||
properties of the object are encoded in the BGP-LS attribute. | the object are encoded in the BGP-LS Attribute. | |||
+------------+ | +------------+ | |||
| Consumer | | | Consumer | | |||
+------------+ | +------------+ | |||
^ | ^ | |||
| | | | |||
v | v | |||
+-------------------+ | +-------------------+ | |||
| BGP Speaker | +-----------+ | | BGP Speaker | +-----------+ | |||
| (Route-Reflector) | | Consumer | | | (Route Reflector) | | Consumer | | |||
+-------------------+ +-----------+ | +-------------------+ +-----------+ | |||
^ ^ ^ ^ | ^ ^ ^ ^ | |||
| | | | | | | | | | |||
+---------------+ | +-------------------+ | | +---------------+ | +-------------------+ | | |||
| | | | | | | | | | |||
v v v v | v v v v | |||
+-----------+ +-----------+ +-----------+ | +-----------+ +-----------+ +-----------+ | |||
| BGP | | BGP | | BGP | | | BGP | | BGP | | BGP | | |||
| Speaker | | Speaker | . . . | Speaker | | | Speaker | | Speaker | . . . | Speaker | | |||
+-----------+ +-----------+ +-----------+ | +-----------+ +-----------+ +-----------+ | |||
^ ^ ^ | ^ ^ ^ | |||
| | | | | | | | |||
IGP IGP IGP | IGP IGP IGP | |||
Figure 1: Link State info collection | Figure 1: Link-State Information Collection | |||
Figure 1 denotes a typical deployment scenario. In each IGP area, | Figure 1 denotes a typical deployment scenario. In each IGP area, | |||
one or more nodes are configured with BGP-LS. These BGP speakers | one or more nodes are configured with BGP-LS. These BGP speakers | |||
form an IBGP mesh by connecting to one or more route-reflectors. | form an Internal BGP (IBGP) mesh by connecting to one or more route | |||
This way, all BGP speakers (specifically the route-reflectors) obtain | reflectors. This way, all BGP speakers (specifically the route | |||
Link-State information from all IGP areas (and from other ASes from | reflectors) obtain link-state information from all IGP areas (and | |||
EBGP peers). An external component connects to the route-reflector | from other ASes from External BGP (EBGP) peers). An external | |||
to obtain this information (perhaps moderated by a policy regarding | component connects to the route reflector to obtain this information | |||
what information is or isn't advertised to the external component) as | (perhaps moderated by a policy regarding what information is or isn't | |||
described in [RFC7752]. | advertised to the external component) as described in [RFC7752]. | |||
This document describes extensions to BGP-LS to advertise the SR | This document describes extensions to BGP-LS to advertise the SR | |||
information. An external component (e.g., a controller) can collect | information. An external component (e.g., a controller) can collect | |||
SR information from across an SR domain (as described in [RFC8402]) | SR information from across an SR domain (as described in [RFC8402]) | |||
and construct the end-to-end path (with its associated SIDs) that | and construct the end-to-end path (with its associated SIDs) that | |||
need to be applied to an incoming packet to achieve the desired end- | needs to be applied to an incoming packet to achieve the desired end- | |||
to-end forwarding. SR operates within a trusted domain consisting of | to-end forwarding. SR operates within a trusted domain consisting of | |||
a single or multiple ASes managed by the same administrative entity | a single AS or multiple ASes managed by the same administrative | |||
e.g. within a single provider network. | entity, e.g., within a single provider network. | |||
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. BGP-LS Extensions for Segment Routing | 2. BGP-LS Extensions for Segment Routing | |||
This document defines SR extensions to BGP-LS and specifies the TLVs | This document defines SR extensions to BGP-LS and specifies the TLVs | |||
and sub-TLVs for advertising SR information within the BGP-LS | and sub-TLVs for advertising SR information within the BGP-LS | |||
Attribute. Section 2.4 and Section 2.5 lists the equivalent TLVs and | Attribute. Sections 2.4 and 2.5 list the equivalent TLVs and sub- | |||
sub-TLVs in IS-IS, OSPFv2 and OSPFv3 protocols. | TLVs in the IS-IS, OSPFv2, and OSPFv3 protocols. | |||
BGP-LS [RFC7752] defines the BGP-LS NLRI that can be a Node NLRI, a | BGP-LS [RFC7752] defines the BGP-LS NLRI that can be a Node NLRI, a | |||
Link NLRI or a Prefix NLRI. BGP-LS [RFC7752] defines the TLVs that | Link NLRI, or a Prefix NLRI, and it defines the TLVs that map link- | |||
map link-state information to BGP-LS NLRI within the BGP-LS | state information to BGP-LS NLRI within the BGP-LS Attribute. This | |||
Attribute. This document adds additional BGP-LS Attribute TLVs in | document adds additional BGP-LS Attribute TLVs in order to encode SR | |||
order to encode SR information. It does not introduce any changes to | information. It does not introduce any changes to the encoding of | |||
the encoding of the BGP-LS NLRIs. | the BGP-LS NLRIs. | |||
2.1. Node Attributes TLVs | 2.1. Node Attribute TLVs | |||
The following Node Attribute TLVs are defined: | The following Node Attribute TLVs are defined: | |||
+------+-----------------+---------------+ | +======+=================+===============+ | |||
| Type | Description | Section | | | Type | Description | Section | | |||
+------+-----------------+---------------+ | +======+=================+===============+ | |||
| 1161 | SID/Label | Section 2.1.1 | | | 1161 | SID/Label | Section 2.1.1 | | |||
+------+-----------------+---------------+ | ||||
| 1034 | SR Capabilities | Section 2.1.2 | | | 1034 | SR Capabilities | Section 2.1.2 | | |||
+------+-----------------+---------------+ | ||||
| 1035 | SR Algorithm | Section 2.1.3 | | | 1035 | SR Algorithm | Section 2.1.3 | | |||
+------+-----------------+---------------+ | ||||
| 1036 | SR Local Block | Section 2.1.4 | | | 1036 | SR Local Block | Section 2.1.4 | | |||
+------+-----------------+---------------+ | ||||
| 1037 | SRMS Preference | Section 2.1.5 | | | 1037 | SRMS Preference | Section 2.1.5 | | |||
+------+-----------------+---------------+ | +------+-----------------+---------------+ | |||
Table 1: Node Attribute TLVs | Table 1: Node Attribute TLVs | |||
These TLVs should only be added to the BGP-LS Attribute associated | These TLVs should only be added to the BGP-LS Attribute associated | |||
with the Node NLRI describing the IGP node that is originating the | with the Node NLRI that describes the IGP node that is originating | |||
corresponding IGP TLV/sub-TLV described below. | the corresponding IGP TLV/sub-TLV described below. | |||
2.1.1. SID/Label TLV | 2.1.1. SID/Label TLV | |||
The SID/Label TLV is used as a sub-TLV by the SR Capabilities | The SID/Label TLV is used as a sub-TLV by the SR Capabilities | |||
(Section 2.1.2) and Segment Routing Local Block (SRLB) | (Section 2.1.2) and Segment Routing Local Block (SRLB) | |||
(Section 2.1.4) TLVs. This information is derived from the protocol | (Section 2.1.4) TLVs. This information is derived from the protocol- | |||
specific advertisements. | specific advertisements. | |||
o IS-IS, as defined by the SID/Label sub-TLV in section 2.3 of | * IS-IS, as defined by the SID/Label Sub-TLV in Section 2.3 of | |||
[RFC8667]. | [RFC8667]. | |||
o OSPFv2/OSPFv3, as defined by the SID/Label sub-TLV in section 2.1 | * OSPFv2/OSPFv3, as defined by the SID/Label Sub-TLV in Section 2.1 | |||
of [RFC8665] and section 3.1 of [RFC8666]. | of [RFC8665] and Section 3.1 of [RFC8666]. | |||
The TLV has the following format: | The 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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| SID/Label (variable) // | | SID/Label (variable) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 2: SID/Label TLV Format | Figure 2: SID/Label TLV Format | |||
Where: | Where: | |||
Type: 1161 | Type: 1161 | |||
Length: Variable. Either 3 or 4 depending whether the value is | Length: Variable. Either 3 or 4 octets depending on whether the | |||
encoded as a label or as an index/SID. | value is encoded as a label or as an index/SID. | |||
SID/Label: If length is set to 3, then the 20 rightmost bits | SID/Label: If the length is set to 3, then the 20 rightmost bits | |||
represent a label (the total TLV size is 7) and the 4 leftmost | represent a label (the total TLV size is 7), and the 4 leftmost | |||
bits are set to 0. If length is set to 4, then the value | bits are set to 0. If the length is set to 4, then the value | |||
represents a 32 bit SID (the total TLV size is 8). | represents a 32-bit SID (the total TLV size is 8). | |||
2.1.2. SR Capabilities TLV | 2.1.2. SR Capabilities TLV | |||
The SR Capabilities TLV is used in order to advertise the node's SR | The SR Capabilities TLV is used in order to advertise the node's SR | |||
Capabilities including its Segment Routing Global Base (SRGB) | capabilities including its Segment Routing Global Base (SRGB) | |||
range(s). In the case of IS-IS, the capabilities also include the | range(s). In the case of IS-IS, the capabilities also include the | |||
IPv4 and IPv6 support for the SR-MPLS forwarding plane. This | IPv4 and IPv6 support for the SR-MPLS forwarding plane. This | |||
information is derived from the protocol specific advertisements. | information is derived from the protocol-specific advertisements. | |||
o IS-IS, as defined by the SR Capabilities sub-TLV in section 3.1 of | * IS-IS, as defined by the SR-Capabilities Sub-TLV in Section 3.1 of | |||
[RFC8667]. | [RFC8667]. | |||
o OSPFv2/OSPFv3, as defined by the SID/Label Range TLV in section | * OSPFv2/OSPFv3, as defined by the SID/Label Range TLV in | |||
3.2 of [RFC8665]. OSPFv3 leverages the same TLV as defined for | Section 3.2 of [RFC8665]. OSPFv3 leverages the same TLV as | |||
OSPFv2. | defined for OSPFv2. | |||
The SR Capabilities TLV has the following format: | The SR Capabilities TLV has the following format: | |||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Flags | Reserved | | | Flags | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Range Size 1 | | | Range Size 1 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| SID/Label sub-TLV 1 // | | SID/Label Sub-TLV 1 // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
... | ... | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Range Size N | | | Range Size N | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| SID/Label sub-TLV N // | | SID/Label Sub-TLV N // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 3: SR Capabilities TLV Format | Figure 3: SR Capabilities TLV Format | |||
Where: | Where: | |||
Type: 1034 | Type: 1034 | |||
Length: Variable. Minimum length is 12. | Length: Variable. The minimum length is 12 octets. | |||
Flags: 1 octet of flags as defined in section 3.1 of [RFC8667] for | Flags: 1 octet of flags as defined in Section 3.1 of [RFC8667] for | |||
IS-IS. The flags are not currently defined for OSPFv2 and OSPFv3 | IS-IS. The flags are not currently defined for OSPFv2 and OSPFv3 | |||
and MUST be set to 0 and ignored on receipt. | and MUST be set to 0 and ignored on receipt. | |||
Reserved: 1 octet that MUST be set to 0 and ignored on receipt. | Reserved: 1 octet that MUST be set to 0 and ignored on receipt. | |||
One or more entries, each of which have the following format: | One or more entries, each of which have the following format: | |||
Range Size: 3 octet with a non-zero value indicating the number | Range Size: 3 octets with a non-zero value indicating the number | |||
of labels in the range. | of labels in the range. | |||
SID/Label TLV (as defined in Section 2.1.1) used as sub-TLV | SID/Label TLV: (as defined in Section 2.1.1) used as a sub-TLV, | |||
which encodes the first label in the range. Since the SID/ | which encodes the first label in the range. Since the SID/ | |||
Label TLV is used to indicate the first label of the SRGB | Label TLV is used to indicate the first label of the SRGB | |||
range, only label encoding is valid under the SR Capabilities | range, only label encoding is valid under the SR Capabilities | |||
TLV. | TLV. | |||
2.1.3. SR Algorithm TLV | 2.1.3. SR-Algorithm TLV | |||
The SR Algorithm TLV is used in order to advertise the SR Algorithms | The SR-Algorithm TLV is used in order to advertise the SR algorithms | |||
supported by the node. This information is derived from the protocol | supported by the node. This information is derived from the | |||
specific advertisements. | protocol-specific advertisements. | |||
o IS-IS, as defined by the SR-Algorithm sub-TLV in section 3.2 of | * IS-IS, as defined by the SR-Algorithm Sub-TLV in Section 3.2 of | |||
[RFC8667]. | [RFC8667]. | |||
o OSPFv2/OSPFv3, as defined by the SR-Algorithm TLV in section 3.1 | * OSPFv2/OSPFv3, as defined by the SR-Algorithm TLV in Section 3.1 | |||
of [RFC8665]. OSPFv3 leverages the same TLV as defined for | of [RFC8665]. OSPFv3 leverages the same TLV as defined for | |||
OSPFv2. | OSPFv2. | |||
The SR Algorithm TLV has the following format: | The SR-Algorithm 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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Algorithm 1 | Algorithm... | Algorithm N | | | Algorithm 1 | Algorithm... | Algorithm N | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 4: SR Algorithm TLV Format | Figure 4: SR-Algorithm TLV Format | |||
Where: | Where: | |||
Type: 1035 | Type: 1035 | |||
Length: Variable. Minimum length is 1 and maximum can be 256. | Length: Variable. The minimum length is 1 octet and the maximum can | |||
be 256. | ||||
Algorithm: One or more fields of 1 octet each identifying the | Algorithm: One or more fields of 1 octet each that identifies the | |||
algorithm. | algorithm. | |||
2.1.4. SR Local Block TLV | 2.1.4. SR Local Block TLV | |||
The SR Local Block (SRLB) TLV contains the range(s) of labels the | The SRLB TLV contains the range(s) of labels the node has reserved | |||
node has reserved for local SIDs. Local SIDs are used, e.g., in IGP | for local SIDs. Local SIDs are used, e.g., in IGP (IS-IS, OSPF) for | |||
(IS-IS, OSPF) for Adjacency-SIDs, and may also be allocated by | Adjacency SIDs and may also be allocated by components other than IGP | |||
components other than IGP protocols. As an example, an application | protocols. As an example, an application or a controller may | |||
or a controller may instruct a node to allocate a specific local SID. | instruct a node to allocate a specific local SID. Therefore, in | |||
Therefore, in order for such applications or controllers to know the | order for such applications or controllers to know the range of local | |||
range of local SIDs available, it is required that the node | SIDs available, the node is required to advertise its SRLB. | |||
advertises its SRLB. | ||||
This information is derived from the protocol specific | This information is derived from the protocol-specific | |||
advertisements. | advertisements. | |||
o IS-IS, as defined by the SR Local Block sub-TLV in section 3.3 of | * IS-IS, as defined by the SRLB Sub-TLV in Section 3.3 of [RFC8667]. | |||
[RFC8667]. | ||||
o OSPFv2/OSPFv3, as defined by the SR Local Block TLV in section | * OSPFv2/OSPFv3, as defined by the SR Local Block TLV in Section 3.3 | |||
3.3. of [RFC8665]. OSPFv3 leverages the same TLV as defined for | of [RFC8665]. OSPFv3 leverages the same TLV as defined for | |||
OSPFv2. | OSPFv2. | |||
The SRLB TLV has the following format: | The SRLB TLV has the following format: | |||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Flags | Reserved | | | Flags | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Sub-Range Size 1 | | | Sub-Range Size 1 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| SID/Label sub-TLV 1 // | | SID/Label Sub-TLV 1 // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
... | ... | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Sub-Range Size N | | | Sub-Range Size N | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| SID/Label sub-TLV N // | | SID/Label Sub-TLV N // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 5: SRLB TLV Format | Figure 5: SRLB TLV Format | |||
Where: | Where: | |||
Type: 1036 | Type: 1036 | |||
Length: Variable. Minimum length is 12. | Length: Variable. The minimum length is 12 octets. | |||
Flags: 1 octet of flags. The flags are as defined in section 3.3 | Flags: 1 octet of flags. The flags are as defined in Section 3.3 of | |||
of [RFC8667] for IS-IS. The flags are not currently defined for | [RFC8667] for IS-IS. The flags are not currently defined for | |||
OSPFv2 and OSPFv3 and MUST be set to 0 and ignored on receipt. | OSPFv2 and OSPFv3 and MUST be set to 0 and ignored on receipt. | |||
Reserved: 1 octet that MUST be set to 0 and ignored on receipt. | Reserved: 1 octet that MUST be set to 0 and ignored on receipt. | |||
One or more entries corresponding to sub-range(s), each of which | One or more entries corresponding to a sub-range(s), each of which | |||
have the following format: | have the following format: | |||
Range Size: 3 octet value indicating the number of labels in | Range Size: 3-octet value indicating the number of labels in the | |||
the range. | range. | |||
SID/Label TLV (as defined in Section 2.1.1) used as sub-TLV | SID/Label TLV: (as defined in Section 2.1.1) used as a sub-TLV, | |||
which encodes the first label in the sub-range. Since the SID/ | which encodes the first label in the sub-range. Since the SID/ | |||
Label TLV is used to indicate the first label of the SRLB sub- | Label TLV is used to indicate the first label of the SRLB sub- | |||
range, only label encoding is valid under the SR Local Block | range, only label encoding is valid under the SR Local Block | |||
TLV. | TLV. | |||
2.1.5. SRMS Preference TLV | 2.1.5. SRMS Preference TLV | |||
The Segment Routing Mapping Server (SRMS) Preference TLV is used in | The Segment Routing Mapping Server (SRMS) Preference TLV is used in | |||
order to associate a preference with SRMS advertisements from a | order to associate a preference with SRMS advertisements from a | |||
particular source. [RFC8661] specifies the SRMS functionality along | particular source. [RFC8661] specifies the SRMS functionality along | |||
with SRMS preference of the node advertising the SRMS Prefix-to-SID | with the SRMS preference of the node advertising the SRMS Prefix-to- | |||
Mapping ranges. | SID mapping ranges. | |||
This information is derived from the protocol specific | This information is derived from the protocol-specific | |||
advertisements. | advertisements. | |||
o IS-IS, as defined by the SRMS Preference sub-TLV in section 3.4 of | * IS-IS, as defined by the SRMS Preference Sub-TLV in Section 3.4 of | |||
[RFC8667]. | [RFC8667]. | |||
o OSPFv2/OSPFv3, as defined by the SRMS Preference TLV in section | * OSPFv2/OSPFv3, as defined by the SRMS Preference TLV in | |||
3.4 of [RFC8665]. OSPFv3 leverages the same TLV as defined for | Section 3.4 of [RFC8665]. OSPFv3 leverages the same TLV as | |||
OSPFv2. | defined for OSPFv2. | |||
The SRMS Preference TLV has the following format: | The SRMS Preference 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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Preference | | | Preference | | |||
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
Figure 6: SRMS Preference TLV Format | Figure 6: SRMS Preference TLV Format | |||
Where: | Where: | |||
Type: 1037 | Type: 1037 | |||
Length: 1. | Length: 1 octet | |||
Preference: 1 octet carrying an unsigned 8 bit SRMS preference. | Preference: 1 octet carrying an unsigned 8-bit SRMS preference. | |||
2.2. Link Attribute TLVs | 2.2. Link Attribute TLVs | |||
The following Link Attribute TLVs are are defined: | The following Link Attribute TLVs are defined: | |||
+------+-----------------------+---------------+ | +======+=================================+===============+ | |||
| Type | Description | Section | | | Type | Description | Section | | |||
+------+-----------------------+---------------+ | +======+=================================+===============+ | |||
| 1099 | Adjacency SID TLV | Section 2.2.1 | | | 1099 | Adjacency SID TLV | Section 2.2.1 | | |||
| 1100 | LAN Adjacency SID TLV | Section 2.2.2 | | +------+---------------------------------+---------------+ | |||
| 1172 | L2 Bundle Member TLV | Section 2.2.3 | | | 1100 | LAN Adjacency SID TLV | Section 2.2.2 | | |||
+------+-----------------------+---------------+ | +------+---------------------------------+---------------+ | |||
| 1172 | L2 Bundle Member Attributes TLV | Section 2.2.3 | | ||||
+------+---------------------------------+---------------+ | ||||
Table 2: Link Attribute TLVs | Table 2: Link Attribute TLVs | |||
These TLVs should only be added to the BGP-LS Attribute associated | These TLVs should only be added to the BGP-LS Attribute associated | |||
with the Link NLRI describing the link of the IGP node that is | with the Link NLRI that describes the link of the IGP node that is | |||
originating the corresponding IGP TLV/sub-TLV described below. | originating the corresponding IGP TLV/sub-TLV described below. | |||
2.2.1. Adjacency SID TLV | 2.2.1. Adjacency SID TLV | |||
The Adjacency SID TLV is used in order to advertise information | The Adjacency SID TLV is used in order to advertise information | |||
related to an Adjacency SID. This information is derived from Adj- | related to an Adjacency SID. This information is derived from the | |||
SID sub-TLV of IS-IS (section 2.2.1 of [RFC8667]), OSPFv2 (section | Adj-SID Sub-TLV of IS-IS (Section 2.2.1 of [RFC8667]), OSPFv2 | |||
6.1 of [RFC8665]) and OSPFv3 (section 7.1 of [RFC8666]). | (Section 6.1 of [RFC8665]), and OSPFv3 (Section 7.1 of [RFC8666]). | |||
The Adjacency SID TLV has the following format: | The Adjacency SID 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) // | |||
+---------------------------------------------------------------+ | +---------------------------------------------------------------+ | |||
Figure 7: Adjacency SID TLV Format | Figure 7: Adjacency SID TLV Format | |||
Where: | Where: | |||
Type: 1099 | Type: 1099 | |||
Length: Variable. Either 7 or 8 depending on Label or Index | Length: Variable. Either 7 or 8 octets depending on the label or | |||
encoding of the SID | index encoding of the SID. | |||
Flags. 1 octet value which should be set as: | Flags: 1-octet value that should be set as: | |||
* IS-IS Adj-SID flags are defined in section 2.2.1 of [RFC8667]. | * IS-IS Adj-SID flags as defined in Section 2.2.1 of [RFC8667]. | |||
* OSPFv2 Adj-SID flags are defined in section 6.1 of [RFC8665]. | * OSPFv2 Adj-SID flags as defined in Section 6.1 of [RFC8665]. | |||
* OSPFv3 Adj-SID flags are defined in section 7.1 of [RFC8666]. | * OSPFv3 Adj-SID flags as defined in Section 7.1 of [RFC8666]. | |||
Weight: 1 octet carrying the weight used for load-balancing | Weight: 1 octet carrying the weight used for load-balancing | |||
purposes. The use of weight is described in section 3.4 of | purposes. The use of weight is described in Section 3.4 of | |||
[RFC8402]. | [RFC8402]. | |||
Reserved: 2 octets that MUST be set to 0 and ignored on receipt. | Reserved: 2 octets that MUST be set to 0 and ignored on receipt. | |||
SID/Index/Label: | SID/Index/Label: | |||
* IS-IS: Label or index value as defined in section 2.2.1 of | IS-IS: Label or index value as defined in Section 2.2.1 of | |||
[RFC8667]. | [RFC8667]. | |||
* OSPFv2: Label or index value as defined in section 6.1 of | OSPFv2: Label or index value as defined in Section 6.1 of | |||
[RFC8665]. | [RFC8665]. | |||
* OSPFv3: Label or index value as defined in section 7.1 of | OSPFv3: Label or index value as defined in Section 7.1 of | |||
[RFC8666]. | [RFC8666]. | |||
The Flags and, as an extension, the SID/Index/Label fields of this | The Flags and, as an extension, the SID/Index/Label fields of this | |||
TLV are interpreted according to the respective underlying IS-IS, | TLV are interpreted according to the respective underlying IS-IS, | |||
OSPFv2 or OSPFv3 protocol. The Protocol-ID of the BGP-LS Link NLRI | OSPFv2, or OSPFv3 protocol. The Protocol-ID of the BGP-LS Link NLRI | |||
is used to determine the underlying protocol specification for | is used to determine the underlying protocol specification for | |||
parsing these fields. | parsing these fields. | |||
2.2.2. LAN Adjacency SID TLV | 2.2.2. LAN Adjacency SID TLV | |||
For a LAN, normally a node only announces its adjacency to the IS-IS | For a LAN, normally a node only announces its adjacency to the IS-IS | |||
pseudo-node (or the equivalent OSPF Designated and Backup Designated | pseudonode (or the equivalent OSPF Designated and Backup Designated | |||
Routers). The LAN Adjacency Segment TLV allows a node to announce | Routers). The LAN Adjacency SID TLV allows a node to announce | |||
adjacencies to all other nodes attached to the LAN in a single | adjacencies to all other nodes attached to the LAN in a single | |||
instance of the BGP-LS Link NLRI. Without this TLV, the | instance of the BGP-LS Link NLRI. Without this TLV, the | |||
corresponding BGP-LS link NLRI would need to be originated for each | corresponding BGP-LS Link NLRI would need to be originated for each | |||
additional adjacency in order to advertise the SR TLVs for these | additional adjacency in order to advertise the SR TLVs for these | |||
neighbor adjacencies. | neighbor adjacencies. | |||
This information is derived from LAN-Adj-SID sub-TLV of IS-IS | This information is derived from the LAN-Adj-SID Sub-TLV of IS-IS | |||
(section 2.2.2 of [RFC8667]) and LAN Adj-SID sub-TLV of OSPFv2 | (Section 2.2.2 of [RFC8667]), the LAN Adj-SID Sub-TLV of OSPFv2 | |||
(section 6.2 of [RFC8665]) and OSPFv3 (section 7.2 of [RFC8666]). | (Section 6.2 of [RFC8665]), and the LAN Adj-SID Sub-TLV of OSPFv3 | |||
(Section 7.2 of [RFC8666]). | ||||
The LAN Adjacency SID TLV has the following format: | The LAN Adjacency SID 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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| OSPF Neighbor ID / IS-IS System-ID | | | OSPF Neighbor ID / IS-IS System ID | | |||
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| SID/Label/Index (variable) // | | SID/Label/Index (variable) // | |||
+---------------------------------------------------------------+ | +---------------------------------------------------------------+ | |||
Figure 8: LAN Adjacency SID TLV Format | Figure 8: LAN Adjacency SID TLV Format | |||
Where: | Where: | |||
Type: 1100 | Type: 1100 | |||
Length: Variable. For IS-IS it would be 13 or 14 depending on | Length: Variable. For IS-IS, it would be 13 or 14 octets depending | |||
Label or Index encoding of the SID. For OSPF it would be 11 or 12 | on the label or index encoding of the SID. For OSPF, it would be | |||
depending on Label or Index encoding of the SID. | 11 or 12 octets depending on the label or index encoding of the | |||
SID. | ||||
Flags. 1 octet value which should be set as: | Flags: 1-octet value that should be set as: | |||
* IS-IS LAN Adj-SID flags are defined in section 2.2.2 of | * IS-IS LAN Adj-SID flags as defined in Section 2.2.2 of | |||
[RFC8667]. | [RFC8667]. | |||
* OSPFv2 LAN Adj-SID flags are defined in section 6.2 of | * OSPFv2 LAN Adj-SID flags as defined in Section 6.2 of | |||
[RFC8665]. | [RFC8665]. | |||
* OSPFv3 LAN Adj-SID flags are defined in section 7.2 of | * OSPFv3 LAN Adj-SID flags as defined in Section 7.2 of | |||
[RFC8666]. | [RFC8666]. | |||
Weight: 1 octet carrying the weight used for load-balancing | Weight: 1 octet carrying the weight used for load-balancing | |||
purposes. The use of weight is described in section 3.4 of | purposes. The use of weight is described in Section 3.4 of | |||
[RFC8402]. | [RFC8402]. | |||
Reserved: 2 octets that MUST be set to 0 and ignored on receipt. | Reserved: 2 octets that MUST be set to 0 and ignored on receipt. | |||
Neighbor ID: 6 octets for IS-IS for the System-ID and 4 octets for | Neighbor ID: 6 octets for IS-IS for the System ID, and 4 octets for | |||
OSPF for the OSPF Router-ID of the neighbor. | OSPF for the OSPF Router-ID of the neighbor. | |||
SID/Index/Label: | SID/Index/Label: | |||
* IS-IS: Label or index value as defined in section 2.2.2 of | IS-IS: Label or index value as defined in Section 2.2.2 of | |||
[RFC8667]. | [RFC8667]. | |||
* OSPFv2: Label or index value as defined in section 6.2 of | OSPFv2: Label or index value as defined in Section 6.2 of | |||
[RFC8665]. | [RFC8665]. | |||
* OSPFv3: Label or index value as defined in section 7.2 of | OSPFv3: Label or index value as defined in Section 7.2 of | |||
[RFC8666]. | [RFC8666]. | |||
The Neighbor ID, Flags and, as an extension, the SID/Index/Label | The Neighbor ID, Flags, and, as an extension, the SID/Index/Label | |||
fields of this TLV are interpreted according to the respective | fields of this TLV are interpreted according to the respective | |||
underlying IS-IS, OSPFv2 or OSPFv3 protocol. The Protocol-ID of the | underlying IS-IS, OSPFv2, or OSPFv3 protocol. The Protocol-ID of the | |||
BGP-LS Link NLRI is used to determine the underlying protocol | BGP-LS Link NLRI is used to determine the underlying protocol | |||
specification for parsing these fields. | specification for parsing these fields. | |||
2.2.3. L2 Bundle Member Attribute TLV | 2.2.3. L2 Bundle Member Attributes TLV | |||
The L2 Bundle Member Attribute TLV identifies an L2 Bundle Member | The L2 Bundle Member Attributes TLV identifies an L2 Bundle Member | |||
link which in turn is associated with a parent L3 link. The L3 link | link, which in turn is associated with a parent L3 link. The L3 link | |||
is described by the Link NLRI defined in [RFC7752] and the L2 Bundle | is described by the Link NLRI defined in [RFC7752], and the L2 Bundle | |||
Member Attribute TLV is associated with the Link NLRI. The TLV MAY | Member Attributes TLV is associated with the Link NLRI. The TLV MAY | |||
include sub-TLVs which describe attributes associated with the bundle | include sub-TLVs that describe attributes associated with the bundle | |||
member. The identified bundle member represents a unidirectional | member. The identified bundle member represents a unidirectional | |||
path from the originating router to the neighbor specified in the | path from the originating router to the neighbor specified in the | |||
parent L3 Link. Multiple L2 Bundle Member Attribute TLVs MAY be | parent L3 link. Multiple L2 Bundle Member Attributes TLVs MAY be | |||
associated with a Link NLRI. | associated with a Link NLRI. | |||
This information is derived from L2 Bundle Member Attributes TLV of | This information is derived from L2 Bundle Member Attributes TLV of | |||
IS-IS (section 2 of [RFC8668]). The equivalent functionality has not | IS-IS (Section 2 of [RFC8668]). The equivalent functionality has not | |||
been specified as yet for OSPF. | been specified as yet for OSPF. | |||
The L2 Bundle Member Attribute TLV has the following format: | The L2 Bundle Member Attributes 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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| L2 Bundle Member Descriptor | | | L2 Bundle Member Descriptor | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Link attribute sub-TLVs(variable) // | | Link Attribute Sub-TLVs(variable) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 9: L2 Bundle Member Attributes TLV Format | Figure 9: L2 Bundle Member Attributes TLV Format | |||
Where: | Where: | |||
Type: 1172 | Type: 1172 | |||
Length: Variable. | Length: Variable. | |||
L2 Bundle Member Descriptor: 4 octets field that carries a Link | L2 Bundle Member Descriptor: 4-octet field that carries a link-local | |||
Local Identifier as defined in [RFC4202]. | identifier as defined in [RFC4202]. | |||
Link attributes for L2 Bundle Member Links are advertised as sub-TLVs | Link attributes for L2 Bundle Member links are advertised as sub-TLVs | |||
of the L2 Bundle Member Attribute TLV. The sub-TLVs are identical to | of the L2 Bundle Member Attributes TLV. The sub-TLVs are identical | |||
existing BGP-LS TLVs as identified in the table below. | to existing BGP-LS TLVs as identified in the table below. | |||
+-------------+------------------------------------+----------------+ | +================+==========================+====================+ | |||
| TLV Code | Description | Reference | | | TLV Code Point | Description | Reference Document | | |||
| Point | | Document | | +================+==========================+====================+ | |||
+-------------+------------------------------------+----------------+ | | 1088 | Administrative group | [RFC7752] | | |||
| 1088 | Administrative group (color) | [RFC7752] | | | | (color) | | | |||
| 1089 | Maximum link bandwidth | [RFC7752] | | +----------------+--------------------------+--------------------+ | |||
| 1090 | Max. reservable link bandwidth | [RFC7752] | | | 1089 | Maximum link bandwidth | [RFC7752] | | |||
| 1091 | Unreserved bandwidth | [RFC7752] | | +----------------+--------------------------+--------------------+ | |||
| 1092 | TE default metric | [RFC7752] | | | 1090 | Max. reservable link | [RFC7752] | | |||
| 1093 | Link protection type | [RFC7752] | | | | bandwidth | | | |||
| 1099 | Adjacency Segment Identifier (Adj- | Section 2.2.1 | | +----------------+--------------------------+--------------------+ | |||
| | SID) TLV | | | | 1091 | Unreserved bandwidth | [RFC7752] | | |||
| 1100 | LAN Adjacency Segment Identifier | Section 2.2.2 | | +----------------+--------------------------+--------------------+ | |||
| | (Adj-SID) TLV | | | | 1092 | TE default metric | [RFC7752] | | |||
| 1114 | Unidirectional link delay | [RFC8571] | | +----------------+--------------------------+--------------------+ | |||
| 1115 | Min/Max Unidirectional link delay | [RFC8571] | | | 1093 | Link protection type | [RFC7752] | | |||
| 1116 | Unidirectional Delay Variation | [RFC8571] | | +----------------+--------------------------+--------------------+ | |||
| 1117 | Unidirectional packet loss | [RFC8571] | | | 1099 | Adjacency Segment | Section 2.2.1 | | |||
| 1118 | Unidirectional residual bandwidth | [RFC8571] | | | | Identifier (Adj-SID) TLV | | | |||
| 1119 | Unidirectional available bandwidth | [RFC8571] | | +----------------+--------------------------+--------------------+ | |||
| 1120 | Unidirectional bandwidth | [RFC8571] | | | 1100 | LAN Adjacency Segment | Section 2.2.2 | | |||
| | utilization | | | | | Identifier (Adj-SID) TLV | | | |||
+-------------+------------------------------------+----------------+ | +----------------+--------------------------+--------------------+ | |||
| 1114 | Unidirectional link | [RFC8571] | | ||||
| | delay | | | ||||
+----------------+--------------------------+--------------------+ | ||||
| 1115 | Min/Max Unidirectional | [RFC8571] | | ||||
| | link delay | | | ||||
+----------------+--------------------------+--------------------+ | ||||
| 1116 | Unidirectional Delay | [RFC8571] | | ||||
| | Variation | | | ||||
+----------------+--------------------------+--------------------+ | ||||
| 1117 | Unidirectional Link Loss | [RFC8571] | | ||||
+----------------+--------------------------+--------------------+ | ||||
| 1118 | Unidirectional residual | [RFC8571] | | ||||
| | bandwidth | | | ||||
+----------------+--------------------------+--------------------+ | ||||
| 1119 | Unidirectional available | [RFC8571] | | ||||
| | bandwidth | | | ||||
+----------------+--------------------------+--------------------+ | ||||
| 1120 | Unidirectional Utilized | [RFC8571] | | ||||
| | Bandwidth | | | ||||
+----------------+--------------------------+--------------------+ | ||||
Table 3: BGP-LS Attribute TLVs also used as sub-TLVs of L2 Bundle | Table 3: BGP-LS Attribute TLVs are also used as sub-TLVs of | |||
Member Attribute TLV | the L2 Bundle Member Attributes TLV | |||
2.3. Prefix Attribute TLVs | 2.3. Prefix Attribute TLVs | |||
The following Prefix Attribute TLVs are defined: | The following Prefix Attribute TLVs are defined: | |||
+------------------+--------------------------+---------------+ | +======+==========================+===============+ | |||
| Type | Description | Section | | | Type | Description | Section | | |||
+------------------+--------------------------+---------------+ | +======+==========================+===============+ | |||
| 1158 | Prefix SID | Section 2.3.1 | | | 1158 | Prefix-SID | Section 2.3.1 | | |||
| 1159 | Range | Section 2.3.5 | | +------+--------------------------+---------------+ | |||
| 1170 | Prefix Attribute Flags | Section 2.3.2 | | | 1159 | Range | Section 2.3.5 | | |||
| 1171 | Source Router Identifier | Section 2.3.3 | | +------+--------------------------+---------------+ | |||
| 1174 (suggested) | Source OSPF Router-ID | Section 2.3.4 | | | 1170 | Prefix Attribute Flags | Section 2.3.2 | | |||
+------------------+--------------------------+---------------+ | +------+--------------------------+---------------+ | |||
| 1171 | Source Router Identifier | Section 2.3.3 | | ||||
+------+--------------------------+---------------+ | ||||
| 1174 | Source OSPF Router-ID | Section 2.3.4 | | ||||
+------+--------------------------+---------------+ | ||||
Table 4: Prefix Attribute TLVs | Table 4: Prefix Attribute TLVs | |||
These TLVs should only be added to the BGP-LS Attribute associated | These TLVs should only be added to the BGP-LS Attribute associated | |||
with the Prefix NLRI describing the prefix of the IGP node that is | with the Prefix NLRI that describes the prefix of the IGP node that | |||
originating the corresponding IGP TLV/sub-TLV described below. | is originating the corresponding IGP TLV/sub-TLV described below. | |||
2.3.1. Prefix SID TLV | 2.3.1. Prefix-SID TLV | |||
The Prefix SID TLV is used in order to advertise information related | The Prefix-SID TLV is used in order to advertise information related | |||
to a Prefix SID. This information is derived from Prefix-SID sub-TLV | to a Prefix-SID. This information is derived from the Prefix-SID | |||
of IS-IS (section 2.1 of [RFC8667]) and the Prefix SID sub-TLV of | Sub-TLV of IS-IS (Section 2.1 of [RFC8667]), the Prefix-SID Sub-TLV | |||
OSPFv2 (section 5 of [RFC8665]) and OSPFv3 (section 6 of [RFC8666]). | of OSPFv2 (Section 5 of [RFC8665]), and the Prefix-SID Sub-TLV of | |||
OSPFv3 (Section 6 of [RFC8666]). | ||||
The Prefix SID TLV has the following format: | The Prefix-SID 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 | Algorithm | Reserved | | | Flags | Algorithm | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| SID/Index/Label (variable) // | | SID/Index/Label (variable) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 10: Prefix SID TLV Format | Figure 10: Prefix-SID TLV Format | |||
Where: | Where: | |||
Type: 1158 | Type: 1158 | |||
Length: Variable. 7 or 8 depending on Label or Index encoding of | Length: Variable. 7 or 8 octets depending on the label or index | |||
the SID | encoding of the SID. | |||
Flags: 1 octet value which should be set as: | Flags: 1-octet value that should be set as: | |||
* IS-IS Prefix SID flags are defined in section 2.1.1 of | * IS-IS Prefix-SID flags as defined in Section 2.1.1 of | |||
[RFC8667]. | [RFC8667]. | |||
* OSPFv2 Prefix SID flags are defined in section 5 of [RFC8665]. | * OSPFv2 Prefix-SID flags as defined in Section 5 of [RFC8665]. | |||
* OSPFv3 Prefix SID flags are defined in section 6 of [RFC8666]. | * OSPFv3 Prefix-SID flags as defined in Section 6 of [RFC8665]. | |||
Algorithm: 1 octet value identify the algorithm. The semantics of | Algorithm: 1-octet value identifies the algorithm. The semantics of | |||
algorithm are described in section 3.1.1 of [RFC8402]. | the algorithm are described in Section 3.1.1 of [RFC8402]. | |||
Reserved: 2 octets that MUST be set to 0 and ignored on receipt. | Reserved: 2 octets that MUST be set to 0 and ignored on receipt. | |||
SID/Index/Label: | SID/Index/Label: | |||
* IS-IS: Label or index value as defined in section 2.1 of | IS-IS: Label or index value as defined in Section 2.1 of | |||
[RFC8667]. | [RFC8667]. | |||
* OSPFv2: Label or index value as defined in section 5 of | OSPFv2: Label or index value as defined in Section 5 of | |||
[RFC8665]. | [RFC8665]. | |||
* OSPFv3: Label or index value as defined in section 6 of | OSPFv3: Label or index value as defined in Section 6 of | |||
[RFC8666]. | [RFC8666]. | |||
The Flags and, as an extension, the SID/Index/Label fields of this | The Flags and, as an extension, the SID/Index/Label fields of this | |||
TLV are interpreted according to the respective underlying IS-IS, | TLV are interpreted according to the respective underlying IS-IS, | |||
OSPFv2 or OSPFv3 protocol. The Protocol-ID of the BGP-LS Prefix NLRI | OSPFv2, or OSPFv3 protocol. The Protocol-ID of the BGP-LS Prefix | |||
is used to determine the underlying protocol specification for | NLRI is used to determine the underlying protocol specification for | |||
parsing these fields. | parsing these fields. | |||
2.3.2. Prefix Attribute Flags TLV | 2.3.2. Prefix Attribute Flags TLV | |||
The Prefix Attribute Flags TLV carries IPv4/IPv6 prefix attribute | The Prefix Attribute Flags TLV carries IPv4/IPv6 prefix attribute | |||
flags information. These flags are defined for OSPFv2 in section 2.1 | flags information. These flags are defined for OSPFv2 in Section 2.1 | |||
of [RFC7684], for OSPFv3 in section A.4.1.1 of [RFC5340] and for IS- | of [RFC7684], OSPFv3 in Appendix A.4.1.1 of [RFC5340], and IS-IS in | |||
IS in section 2.1 of [RFC7794]. | Section 2.1 of [RFC7794]. | |||
The Prefix Attribute Flags TLV has the following format: | The Prefix Attribute Flags 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 (variable) // | | Flags (variable) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 11: Prefix Attribute Flags TLV Format | Figure 11: Prefix Attribute Flags TLV Format | |||
Where: | Where: | |||
Type: 1170 | Type: 1170 | |||
Length: Variable. | Length: Variable. | |||
Flags: a variable length flag field (according to the length | Flags: a variable-length Flag field (according to the Length field). | |||
field). Flags are routing protocol specific and are to be set as | Flags are routing protocol specific and are to be set as below: | |||
below: | ||||
* IS-IS flags correspond to the IPv4/IPv6 Extended Reachability | * IS-IS flags correspond to the IPv4/IPv6 Extended Reachability | |||
Attribute Flags defined in section 2.1 of [RFC7794]. In the | Attribute Flags defined in Section 2.1 of [RFC7794]. In the | |||
case of the X-flag when associated with IPv6 prefix | case of the X-flag when associated with IPv6 prefix | |||
reachability, the setting corresponds to the setting of the | reachability, the setting corresponds to the setting of the | |||
X-flag in the fixed format of IS-IS TLVs 236 [RFC5308] and 237 | X-flag in the fixed format of IS-IS TLVs 236 [RFC5308] and 237 | |||
[RFC5120]. | [RFC5120]. | |||
* OSPFv2 flags correspond to the Flags field of the OSPFv2 | * OSPFv2 flags correspond to the Flags field of the OSPFv2 | |||
Extended Prefix TLV defined in section 2.1 of [RFC7684] | Extended Prefix TLV defined in Section 2.1 of [RFC7684]. | |||
* OSPFv3 flags map to the Prefix Options field defined in section | * OSPFv3 flags map to the Prefix Options field defined in | |||
A.4.1.1 of [RFC5340] and extended in section 3.1 of [RFC8362] | Appendix A.4.1.1 of [RFC5340] and extended in Section 3.1 of | |||
[RFC8362]. | ||||
The Flags field of this TLV is interpreted according to the | The Flags field of this TLV is interpreted according to the | |||
respective underlying IS-IS, OSPFv2 or OSPFv3 protocol. The | respective underlying IS-IS, OSPFv2, or OSPFv3 protocol. The | |||
Protocol-ID of the BGP-LS Prefix NLRI is used to determine the | Protocol-ID of the BGP-LS Prefix NLRI is used to determine the | |||
underlying protocol specification for parsing this field. | underlying protocol specification for parsing this field. | |||
2.3.3. Source Router Identifier TLV | 2.3.3. Source Router Identifier TLV | |||
The Source Router Identifier TLV contains the IPv4 or IPv6 Router | The Source Router Identifier TLV contains the IPv4 or IPv6 Router | |||
Identifier of the originator of the Prefix. For the IS-IS protocol | Identifier of the originator of the prefix. For the IS-IS protocol, | |||
this is derived from the IPv4/IPv6 Source Router ID sub-TLV as | this is derived from the IPv4/IPv6 Source Router ID Sub-TLV as | |||
defined in section 2.2 of [RFC7794]. For the OSPF protocol, this is | defined in Section 2.2 of [RFC7794]. For the OSPF protocol, this is | |||
derived from the Prefix Source Router Address sub-TLV as defined in | derived from the Prefix Source Router Address Sub-TLV as defined in | |||
section 2.2 of [I-D.ietf-lsr-ospf-prefix-originator]. | Section 2.2 of [RFC9084]. | |||
The Source Router Identifier TLV has the following format: | The Source Router Identifier 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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| 4 or 16 octet Router Identifier // | | 4- or 16-octet Router Identifier // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 12: Source Router Identifier TLV Format | Figure 12: Source Router Identifier TLV Format | |||
Where: | Where: | |||
Type: 1171 | Type: 1171 | |||
Length: Variable. 4 or 16 for IPv4 and IPv6 prefix respectively. | Length: Variable. 4 or 16 octets for the IPv4 or IPv6 prefix, | |||
respectively. | ||||
Router-ID: the IPv4 or IPv6 Router-ID in case of IS-IS and the | Router-ID: the IPv4 or IPv6 Router-ID in the case of IS-IS, and the | |||
IPv4 or IPv6 Router Address in the case of OSPF. | IPv4 or IPv6 Router Address in the case of OSPF. | |||
2.3.4. Source OSPF Router-ID TLV | 2.3.4. Source OSPF Router-ID TLV | |||
The Source OSPF Router-ID TLV is applicable only for the OSPF | The Source OSPF Router-ID TLV is applicable only for the OSPF | |||
protocol and contains OSPF Router-ID of the originator of the Prefix. | protocol and contains the OSPF Router-ID of the originator of the | |||
It is derived from the Prefix Source OSPF Router-ID sub-TLV as | prefix. It is derived from the Prefix Source OSPF Router-ID Sub-TLV | |||
defined in section 2.1 of [I-D.ietf-lsr-ospf-prefix-originator]. | as defined in Section 2.1 of [RFC9084]. | |||
The Source OSPF Router-ID TLV has the following format: | The Source OSPF Router-ID 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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| 4 octet OSPF Router-ID // | | 4-octet OSPF Router-ID // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 13: Source OSPF Router-ID TLV Format | Figure 13: Source OSPF Router-ID TLV Format | |||
Where: | Where: | |||
Type: 1174 (suggested) | Type: 1174 | |||
Length: 4 | Length: 4 octets | |||
OSPF Router-ID: the OSPF Router-ID of the node originating the | OSPF Router-ID: the OSPF Router-ID of the node originating the | |||
prefix. | prefix. | |||
2.3.5. Range TLV | 2.3.5. Range TLV | |||
The Range TLV is used in order to advertise a range of prefix-to-SID | The Range TLV is used in order to advertise a range of prefix-to-SID | |||
mappings as part of the Segment Routing Mapping Server (SRMS) | mappings as part of the SRMS functionality [RFC8661], as defined in | |||
functionality [RFC8661], as defined in the respective underlying IGP | the respective underlying IGP SR extensions: Section 4 of [RFC8665], | |||
SR extensions [RFC8665] (section 4), [RFC8666] (section 5) and | Section 5 of [RFC8666], and Section 2.4 of [RFC8667]. The | |||
[RFC8667] (section 2.4). The information advertised in the Range TLV | information advertised in the Range TLV is derived from the SID/Label | |||
is derived from the SID/Label Binding TLV in the case of IS-IS and | Binding TLV in the case of IS-IS and the OSPFv2/OSPFv3 Extended | |||
the OSPFv2/OSPFv3 Extended Prefix Range TLV in the case of OSPFv2/ | Prefix Range TLV in the case of OSPFv2/OSPFv3. | |||
OSPFv3. | ||||
A Prefix NLRI, that been advertised with a Range TLV, is considered a | A Prefix NLRI, that has been advertised with a Range TLV, is | |||
normal routing prefix (i.e. prefix reachability) only when there is | considered a normal routing prefix (i.e., prefix reachability) only | |||
also an IGP metric TLV (TLV 1095) associated it. Otherwise, it is | when there is also an IGP metric TLV (TLV 1095) associated it. | |||
considered only as the first prefix in the range for prefix-to-SID | Otherwise, it is considered only as the first prefix in the range for | |||
mapping advertisement. | prefix-to-SID mapping advertisement. | |||
The format of the Range TLV is as follows: | The format of the Range TLV is as follows: | |||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Flags | Reserved | Range Size | | | Flags | Reserved | Range Size | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| sub-TLVs // | | sub-TLVs // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 14: Range TLV Format | Figure 14: Range TLV Format | |||
Where: | Where: | |||
Type: 1159 | Type: 1159 | |||
Length: Variable. 11 or 12 depending on Label or Index encoding of | Length: Variable. 11 or 12 octets depending on the label or index | |||
the SID | encoding of the SID. | |||
Flags: 1 octet value which should be set as: | Flags: 1-octet value that should be set as: | |||
* IS-IS SID/Label Binding TLV flags are defined in section 2.4.1 | * IS-IS SID/Label Binding TLV flags as defined in Section 2.4.1 | |||
of [RFC8667]. | of [RFC8667]. | |||
* OSPFv2 OSPF Extended Prefix Range TLV flags are defined in | * OSPFv2 OSPF Extended Prefix Range TLV flags as defined in | |||
section 4 of [RFC8665]. | Section 4 of [RFC8665]. | |||
* OSPFv3 Extended Prefix Range TLV flags are defined in section 5 | * OSPFv3 Extended Prefix Range TLV flags as defined in Section 5 | |||
of [RFC8666]. | of [RFC8666]. | |||
Reserved: 1 octet that MUST be set to 0 and ignored on receipt. | Reserved: 1 octet that MUST be set to 0 and ignored on receipt. | |||
Range Size: 2 octets that carry the number of prefixes that are | Range Size: 2 octets that carry the number of prefixes that are | |||
covered by the advertisement.. | covered by the advertisement. | |||
The Flags field of this TLV is interpreted according to the | The Flags field of this TLV is interpreted according to the | |||
respective underlying IS-IS, OSPFv2 or OSPFv3 protocol. The | respective underlying IS-IS, OSPFv2, or OSPFv3 protocol. The | |||
Protocol-ID of the BGP-LS Prefix NLRI is used to determine the | Protocol-ID of the BGP-LS Prefix NLRI is used to determine the | |||
underlying protocol specification for parsing this field. | underlying protocol specification for parsing this field. | |||
The prefix-to-SID mappings are advertised using sub-TLVs as below: | The prefix-to-SID mappings are advertised using sub-TLVs as below: | |||
IS-IS: | IS-IS: | |||
SID/Label Range TLV | SID/Label Range TLV | |||
Prefix-SID sub-TLV | Prefix-SID Sub-TLV | |||
OSPFv2/OSPFv3: | OSPFv2/OSPFv3: | |||
OSPFv2/OSPFv3 Extended Prefix Range TLV | OSPFv2/OSPFv3 Extended Prefix Range TLV | |||
Prefix SID sub-TLV | Prefix-SID Sub-TLV | |||
BGP-LS: | BGP-LS: | |||
Range TLV | Range TLV | |||
Prefix-SID TLV (used as a sub-TLV in this context) | Prefix-SID TLV (used as a sub-TLV in this context) | |||
The prefix-to-SID mapping information for the BGP-LS Prefix-SID TLV | The prefix-to-SID mapping information for the BGP-LS Prefix-SID TLV | |||
(used as sub-TLV in this context) is encoded as described in | (used as a sub-TLV in this context) is encoded as described in | |||
Section 2.3.1. | Section 2.3.1. | |||
2.4. Equivalent IS-IS Segment Routing TLVs/Sub-TLVs | 2.4. Equivalent IS-IS Segment Routing TLVs/Sub-TLVs | |||
This section illustrate the IS-IS Segment Routing Extensions TLVs and | This section illustrates the IS-IS Segment Routing Extensions TLVs | |||
sub-TLVs mapped to the ones defined in this document. | and sub-TLVs mapped to the ones defined in this document. | |||
The following table, illustrates for each BGP-LS TLV, its equivalence | For each BGP-LS TLV, the following table illustrates its equivalence | |||
in IS-IS. | in IS-IS. | |||
+----------------------+--------------------------------+-----------+ | +========================+==============================+===========+ | |||
| Description | IS-IS TLV/sub-TLV | Reference | | | Description | IS-IS TLV/sub-TLV | Reference | | |||
+----------------------+--------------------------------+-----------+ | +========================+==============================+===========+ | |||
| SR Capabilities | SR-Capabilities sub-TLV (2) | [RFC8667] | | | SR Capabilities | SR-Capabilities Sub-TLV (2) | [RFC8667] | | |||
| SR Algorithm | SR-Algorithm sub-TLV (19) | [RFC8667] | | +------------------------+------------------------------+-----------+ | |||
| SR Local Block | SR Local Block sub-TLV (22) | [RFC8667] | | | SR Algorithm | SR-Algorithm Sub-TLV (19) | [RFC8667] | | |||
| SRMS Preference | SRMS Preference sub-TLV (19) | [RFC8667] | | +------------------------+------------------------------+-----------+ | |||
| Adjacency SID | Adj-SID sub-TLV (31) | [RFC8667] | | | SR Local Block | SR Local Block Sub-TLV (22) | [RFC8667] | | |||
| LAN Adjacency SID | LAN-Adj-SID sub-TLV (32) | [RFC8667] | | +------------------------+------------------------------+-----------+ | |||
| Prefix SID | Prefix-SID sub-TLV (3) | [RFC8667] | | | SRMS Preference | SRMS Preference Sub-TLV (19) | [RFC8667] | | |||
| Range | SID/Label Binding TLV (149) | [RFC8667] | | +------------------------+------------------------------+-----------+ | |||
| SID/Label | SID/Label sub-TLV (1) | [RFC8667] | | | Adjacency SID | Adj-SID Sub-TLV (31) | [RFC8667] | | |||
| Prefix Attribute | Prefix Attributes Flags sub- | [RFC7794] | | +------------------------+------------------------------+-----------+ | |||
| Flags | TLV (4) | | | | LAN Adjacency SID | LAN-Adj-SID Sub-TLV (32) | [RFC8667] | | |||
| Source Router | IPv4/IPv6 Source Router ID | [RFC7794] | | +------------------------+------------------------------+-----------+ | |||
| Identifier | sub-TLV (11/12) | | | | Prefix-SID | Prefix-SID Sub-TLV (3) | [RFC8667] | | |||
| L2 Bundle Member | L2 Bundle Member Attributes | [RFC8668] | | +------------------------+------------------------------+-----------+ | |||
| Attributes | TLV (25) | | | | Range | SID/Label Binding TLV (149) | [RFC8667] | | |||
+----------------------+--------------------------------+-----------+ | +------------------------+------------------------------+-----------+ | |||
| SID/Label | SID/Label Sub-TLV (1) | [RFC8667] | | ||||
+------------------------+------------------------------+-----------+ | ||||
| Prefix Attribute | Prefix Attribute Flags Sub- | [RFC7794] | | ||||
| Flags | TLV (4) | | | ||||
+------------------------+------------------------------+-----------+ | ||||
| Source Router | IPv4/IPv6 Source Router ID | [RFC7794] | | ||||
| Identifier | Sub-TLV (11/12) | | | ||||
+------------------------+------------------------------+-----------+ | ||||
| L2 Bundle Member | L2 Bundle Member Attributes | [RFC8668] | | ||||
| Attributes | TLV (25) | | | ||||
+------------------------+------------------------------+-----------+ | ||||
Table 5: IS-IS Segment Routing Extensions TLVs/Sub-TLVs | Table 5: IS-IS Segment Routing Extensions TLVs/Sub-TLVs | |||
2.5. Equivalent OSPFv2/OSPFv3 Segment Routing TLVs/Sub-TLVs | 2.5. Equivalent OSPFv2/OSPFv3 Segment Routing TLVs/Sub-TLVs | |||
This section illustrate the OSPFv2 and OSPFv3 Segment Routing | This section illustrates the OSPFv2 and OSPFv3 Segment Routing | |||
Extensions TLVs and sub-TLVs mapped to the ones defined in this | Extensions TLVs and sub-TLVs mapped to the ones defined in this | |||
document. | document. | |||
The following table, illustrates for each BGP-LS TLV, its equivalence | For each BGP-LS TLV, the following tables illustrate its equivalence | |||
in OSPFv2 and OSPFv3. | in OSPFv2 and OSPFv3. | |||
+-------------+--------------+--------------------------------------+ | +===================+==========================+===========+ | |||
| Description | OSPFv2 | Reference | | | Description | OSPFv2 TLV/sub-TLV | Reference | | |||
| | TLV/sub-TLV | | | +===================+==========================+===========+ | |||
+-------------+--------------+--------------------------------------+ | | SR Capabilities | SID/Label Range TLV (9) | [RFC8665] | | |||
| SR Capabili | SID/Label | [RFC8665] | | +-------------------+--------------------------+-----------+ | |||
| ties | Range TLV | | | | SR Algorithm | SR-Algorithm TLV (8) | [RFC8665] | | |||
| | (9) | | | +-------------------+--------------------------+-----------+ | |||
| SR | SR-Algorithm | [RFC8665] | | | SR Local Block | SR Local Block TLV (14) | [RFC8665] | | |||
| Algorithm | TLV (8) | | | +-------------------+--------------------------+-----------+ | |||
| SR Local | SR Local | [RFC8665] | | | SRMS Preference | SRMS Preference TLV (15) | [RFC8665] | | |||
| Block | Block TLV | | | +-------------------+--------------------------+-----------+ | |||
| | (14) | | | | Adjacency SID | Adj-SID Sub-TLV (2) | [RFC8665] | | |||
| SRMS | SRMS | [RFC8665] | | +-------------------+--------------------------+-----------+ | |||
| Preference | Preference | | | | LAN Adjacency SID | LAN Adj-SID Sub-TLV (3) | [RFC8665] | | |||
| | TLV (15) | | | +-------------------+--------------------------+-----------+ | |||
| Adjacency | Adj-SID sub- | [RFC8665] | | | Prefix-SID | Prefix-SID Sub-TLV (2) | [RFC8665] | | |||
| SID | TLV (2) | | | +-------------------+--------------------------+-----------+ | |||
| LAN | LAN Adj-SID | [RFC8665] | | | Range | OSPF Extended Prefix | [RFC8665] | | |||
| Adjacency | sub-TLV (3) | | | | | Range TLV (2) | | | |||
| SID | | | | +-------------------+--------------------------+-----------+ | |||
| Prefix SID | Prefix SID | [RFC8665] | | | SID/Label | SID/Label Sub-TLV (1) | [RFC8665] | | |||
| | sub-TLV (2) | | | +-------------------+--------------------------+-----------+ | |||
| Range | OSPF | [RFC8665] | | | Prefix Attribute | Flags of OSPFv2 Extended | [RFC7684] | | |||
| | Extended | | | | Flags | Prefix TLV (1) | | | |||
| | Prefix Range | | | +-------------------+--------------------------+-----------+ | |||
| | TLV (2) | | | | Source Router | Prefix Source Router | [RFC9084] | | |||
| SID/Label | SID/Label | [RFC8665] | | | Identifier | Address Sub-TLV (5) | | | |||
| | sub-TLV (1) | | | +-------------------+--------------------------+-----------+ | |||
| Prefix | Flags of | [RFC7684] | | | Source OSPF | Prefix Source OSPF | [RFC9084] | | |||
| Attribute | OSPFv2 | | | | Router-ID | Router-ID Sub-TLV (4) | | | |||
| Flags | Extended | | | +-------------------+--------------------------+-----------+ | |||
| | Prefix TLV | | | ||||
| | (1) | | | ||||
| Source | Prefix | [I-D.ietf-lsr-ospf-prefix-originator | | ||||
| Router | Source | ] | | ||||
| Identifier | Router-ID | | | ||||
| | sub-TLV (4) | | | ||||
| Source OSPF | Prefix | [I-D.ietf-lsr-ospf-prefix-originator | | ||||
| Router-ID | Source OSPF | ] | | ||||
| | Router-ID | | | ||||
| | sub-TLV (5) | | | ||||
+-------------+--------------+--------------------------------------+ | ||||
Table 6: OSPFv2 Segment Routing Extensions TLVs/Sub-TLVs | Table 6: OSPFv2 Segment Routing Extensions TLVs/Sub-TLVs | |||
+-------------+--------------+--------------------------------------+ | +===================+==========================+===========+ | |||
| Description | OSPFv3 | Reference | | | Description | OSPFv3 TLV/sub-TLV | Reference | | |||
| | TLV/sub-TLV | | | +===================+==========================+===========+ | |||
+-------------+--------------+--------------------------------------+ | | SR Capabilities | SID/Label Range TLV (9) | [RFC8665] | | |||
| SR Capabili | SID/Label | [RFC8665] | | +-------------------+--------------------------+-----------+ | |||
| ties | Range TLV | | | | SR Algorithm | SR-Algorithm TLV (8) | [RFC8665] | | |||
| | (9) | | | +-------------------+--------------------------+-----------+ | |||
| SR | SR-Algorithm | [RFC8665] | | | SR Local Block | SR Local Block TLV (14) | [RFC8665] | | |||
| Algorithm | TLV (8) | | | +-------------------+--------------------------+-----------+ | |||
| SR Local | SR Local | [RFC8665] | | | SRMS Preference | SRMS Preference TLV (15) | [RFC8665] | | |||
| Block | Block TLV | | | +-------------------+--------------------------+-----------+ | |||
| | (14) | | | | Adjacency SID | Adj-SID Sub-TLV (5) | [RFC8666] | | |||
| SRMS | SRMS | [RFC8665] | | +-------------------+--------------------------+-----------+ | |||
| Preference | Preference | | | | LAN Adjacency SID | LAN Adj-SID Sub-TLV (6) | [RFC8666] | | |||
| | TLV (15) | | | +-------------------+--------------------------+-----------+ | |||
| Adjacency | Adj-SID sub- | [RFC8666] | | | Prefix-SID | Prefix-SID Sub-TLV (4) | [RFC8666] | | |||
| SID | TLV (5) | | | +-------------------+--------------------------+-----------+ | |||
| LAN | LAN Adj-SID | [RFC8666] | | | Range | OSPFv3 Extended Prefix | [RFC8666] | | |||
| Adjacency | sub-TLV (6) | | | | | Range TLV (9) | | | |||
| SID | | | | +-------------------+--------------------------+-----------+ | |||
| Prefix SID | Prefix SID | [RFC8666] | | | SID/Label | SID/Label Sub-TLV (7) | [RFC8666] | | |||
| | sub-TLV (4) | | | +-------------------+--------------------------+-----------+ | |||
| Range | OSPFv3 | [RFC8666] | | | Prefix Attribute | Prefix Option Fields of | [RFC8362] | | |||
| | Extended | | | | Flags | Prefix TLV types 3,5,6 | | | |||
| | Prefix Range | | | +-------------------+--------------------------+-----------+ | |||
| | TLV (9) | | | | Source OSPF | Prefix Source Router | [RFC9084] | | |||
| SID/Label | SID/Label | [RFC8666] | | | Router Identifier | Address Sub-TLV (28) | | | |||
| | sub-TLV (7) | | | +-------------------+--------------------------+-----------+ | |||
| Prefix | Prefix | [RFC8362] | | | Source OSPF | Prefix Source OSPF | [RFC9084] | | |||
| Attribute | Option | | | | Router-ID | Router-ID Sub-TLV (27) | | | |||
| Flags | Fields of | | | +-------------------+--------------------------+-----------+ | |||
| | Prefix TLV | | | ||||
| | types 3,5,6 | | | ||||
| Source OSPF | Prefix | [I-D.ietf-lsr-ospf-prefix-originator | | ||||
| Router | Source | ] | | ||||
| Identifier | Router-ID | | | ||||
| | sub-TLV (27) | | | ||||
| Source OSPF | Prefix | [I-D.ietf-lsr-ospf-prefix-originator | | ||||
| Router-ID | Source OSPF | ] | | ||||
| | Router-ID | | | ||||
| | sub-TLV (28) | | | ||||
+-------------+--------------+--------------------------------------+ | ||||
Table 7: OSPFv3 Segment Routing Extensions TLVs/Sub-TLVs | Table 7: OSPFv3 Segment Routing Extensions TLVs/Sub-TLVs | |||
3. IANA Considerations | 3. IANA Considerations | |||
Early allocation of codepoints has been done by IANA for this | IANA has registered the following code points in the "BGP-LS Node | |||
document from the registry "BGP-LS Node Descriptor, Link Descriptor, | Descriptor, Link Descriptor, Prefix Descriptor, and Attribute TLVs" | |||
Prefix Descriptor, and Attribute TLVs" under the "BGP-LS Parameters" | registry under the "Border Gateway Protocol - Link State (BGP-LS) | |||
registry based on Table 8. The column "IS-IS TLV/Sub-TLV" defined in | Parameter" registry based on Table 8. The column "IS-IS TLV/Sub-TLV" | |||
the registry does not require any value and should be left empty. | defined in the registry does not require any value and should be left | |||
empty. | ||||
3.1. TLV/Sub-TLV Code Points Summary | 3.1. TLV/Sub-TLV Code Points Summary | |||
This section contains the global table of all TLVs/sub-TLVs defined | This section contains the global table of all TLVs/sub-TLVs defined | |||
in this document. | in this document. | |||
+------------------+-----------------------------+---------------+ | +================+=============================+===============+ | |||
| TLV Code Point | Description | Reference | | | TLV Code Point | Description | Reference | | |||
+------------------+-----------------------------+---------------+ | +================+=============================+===============+ | |||
| 1034 | SR Capabilities | Section 2.1.2 | | | 1034 | SR Capabilities | Section 2.1.2 | | |||
| 1035 | SR Algorithm | Section 2.1.3 | | +----------------+-----------------------------+---------------+ | |||
| 1036 | SR Local Block | Section 2.1.4 | | | 1035 | SR Algorithm | Section 2.1.3 | | |||
| 1037 | SRMS Preference | Section 2.1.5 | | +----------------+-----------------------------+---------------+ | |||
| 1099 | Adjacency SID | Section 2.2.1 | | | 1036 | SR Local Block | Section 2.1.4 | | |||
| 1100 | LAN Adjacency SID | Section 2.2.2 | | +----------------+-----------------------------+---------------+ | |||
| 1158 | Prefix SID | Section 2.3.1 | | | 1037 | SRMS Preference | Section 2.1.5 | | |||
| 1159 | Range | Section 2.3.5 | | +----------------+-----------------------------+---------------+ | |||
| 1161 | SID/Label | Section 2.1.1 | | | 1099 | Adjacency SID | Section 2.2.1 | | |||
| 1170 | Prefix Attribute Flags | Section 2.3.2 | | +----------------+-----------------------------+---------------+ | |||
| 1171 | Source Router Identifier | Section 2.3.3 | | | 1100 | LAN Adjacency SID | Section 2.2.2 | | |||
| 1172 | L2 Bundle Member Attributes | Section 2.2.3 | | +----------------+-----------------------------+---------------+ | |||
| 1174 (suggested) | Source OSPF Router-ID | Section 2.3.4 | | | 1158 | Prefix-SID | Section 2.3.1 | | |||
+------------------+-----------------------------+---------------+ | +----------------+-----------------------------+---------------+ | |||
| 1159 | Range | Section 2.3.5 | | ||||
+----------------+-----------------------------+---------------+ | ||||
| 1161 | SID/Label | Section 2.1.1 | | ||||
+----------------+-----------------------------+---------------+ | ||||
| 1170 | Prefix Attribute Flags | Section 2.3.2 | | ||||
+----------------+-----------------------------+---------------+ | ||||
| 1171 | Source Router Identifier | Section 2.3.3 | | ||||
+----------------+-----------------------------+---------------+ | ||||
| 1172 | L2 Bundle Member Attributes | Section 2.2.3 | | ||||
+----------------+-----------------------------+---------------+ | ||||
| 1174 | Source OSPF Router-ID | Section 2.3.4 | | ||||
+----------------+-----------------------------+---------------+ | ||||
Table 8: Summary Table of TLV/Sub-TLV Codepoints | Table 8: Summary of TLV/Sub-TLV Code Points | |||
4. Manageability Considerations | 4. Manageability Considerations | |||
This section is structured as recommended in [RFC5706]. | This section is structured as recommended in [RFC5706]. | |||
The new protocol extensions introduced in this document augment the | The new protocol extensions introduced in this document augment the | |||
existing IGP topology information that is distributed via [RFC7752]. | existing IGP topology information that is distributed via [RFC7752]. | |||
Procedures and protocol extensions defined in this document do not | Procedures and protocol extensions defined in this document do not | |||
affect the BGP protocol operations and management other than as | affect the BGP protocol operations and management other than as | |||
discussed in the Manageability Considerations section of [RFC7752]. | discussed in the Manageability Considerations section of [RFC7752]. | |||
Specifically, the malformed attribute tests for syntactic checks in | Specifically, the malformed attribute tests for syntactic checks in | |||
the Fault Management section of [RFC7752] now encompass the new BGP- | the Fault Management section of [RFC7752] now encompass the new BGP- | |||
LS Attribute TLVs defined in this document. The semantic or content | LS Attribute TLVs defined in this document. The semantic or content | |||
checking for the TLVs specified in this document and their | checking for the TLVs specified in this document and their | |||
association with the BGP-LS NLRI types or their BGP-LS Attribute is | association with the BGP-LS NLRI types or their BGP-LS Attribute is | |||
left to the consumer of the BGP-LS information (e.g. an application | left to the consumer of the BGP-LS information (e.g., an application | |||
or a controller) and not the BGP protocol. | or a controller) and not the BGP protocol. | |||
A consumer of the BGP-LS information retrieves this information over | A consumer of the BGP-LS information retrieves this information over | |||
a BGP-LS session (refer Section 1 and 2 of [RFC7752]). The handling | a BGP-LS session (refer to Sections 1 and 2 of [RFC7752]). The | |||
of semantic or content errors by the consumer would be dictated by | handling of semantic or content errors by the consumer would be | |||
the nature of its application usage and hence is beyond the scope of | dictated by the nature of its application usage and hence is beyond | |||
this document. | the scope of this document. | |||
This document only introduces new Attribute TLVs and any syntactic | This document only introduces new Attribute TLVs, and any syntactic | |||
error in them would result in the BGP-LS Attribute being discarded | error in them would result in the BGP-LS Attribute being discarded | |||
with an error log. The SR information introduced in BGP-LS by this | with an error log. The SR information introduced in BGP-LS by this | |||
specification, may be used by BGP-LS consumer applications like a SR | specification may be used by BGP-LS consumer applications like an SR | |||
path computation engine (PCE) to learn the SR capabilities of the | Path Computation Engine (PCE) to learn the SR capabilities of the | |||
nodes in the topology and the mapping of SR segments to those nodes. | nodes in the topology and the mapping of SR segments to those nodes. | |||
This can enable the SR PCE to perform path computations based on SR | This can enable the SR PCE to perform path computations based on SR | |||
for traffic engineering use-cases and to steer traffic on paths | for traffic engineering use cases and to steer traffic on paths | |||
different from the underlying IGP based distributed best path | different from the underlying IGP-based distributed best-path | |||
computation. Errors in the encoding or decoding of the SR | computation. Errors in the encoding or decoding of the SR | |||
information may result in the unavailability of such information to | information may result in the unavailability of such information to | |||
the SR PCE or incorrect information being made available to it. This | the SR PCE or incorrect information being made available to it. This | |||
may result in the SR PCE not being able to perform the desired SR | may result in the SR PCE not being able to perform the desired SR- | |||
based optimization functionality or to perform it in an unexpected or | based optimization functionality or to perform it in an unexpected or | |||
inconsistent manner. The handling of such errors by applications | inconsistent manner. The handling of such errors by applications | |||
like SR PCE may be implementation specific and out of scope of this | like SR PCE may be implementation specific and out of scope of this | |||
document. | document. | |||
The extensions, specified in this document, do not introduce any new | The extensions, specified in this document, do not introduce any new | |||
configuration or monitoring aspects in BGP or BGP-LS other than as | configuration or monitoring aspects in BGP or BGP-LS other than as | |||
discussed in [RFC7752]. The manageability aspects of the underlying | discussed in [RFC7752]. The manageability aspects of the underlying | |||
SR features are covered by [I-D.ietf-spring-sr-yang], | SR features are covered by [RFC9020], [ISIS-SR-YANG], and | |||
[I-D.ietf-isis-sr-yang] and [I-D.ietf-ospf-sr-yang]. | [OSPF-SR-YANG]. | |||
5. Security Considerations | 5. Security Considerations | |||
The new protocol extensions introduced in this document augment the | The new protocol extensions introduced in this document augment the | |||
existing IGP topology information that is distributed via [RFC7752]. | existing IGP topology information that is distributed via [RFC7752]. | |||
The advertisement of the SR link attribute information defined in | The advertisement of the SR link attribute information defined in | |||
this document presents similar risk as associated with the existing | this document presents similar risk as associated with the existing | |||
set of link attribute information as described in [RFC7752]. The | set of link attribute information as described in [RFC7752]. The | |||
Security Considerations section of [RFC7752] also applies to these | Security Considerations section of [RFC7752] also applies to these | |||
extensions. The procedures and new TLVs defined in this document, by | extensions. The procedures and new TLVs defined in this document, by | |||
themselves, do not affect the BGP-LS security model discussed in | themselves, do not affect the BGP-LS security model discussed in | |||
[RFC7752]. | [RFC7752]. | |||
The TLVs introduced in this document are used to propagate IGP | The TLVs introduced in this document are used to propagate IGP- | |||
defined information ([RFC8667], [RFC8665] and [RFC8666]). These TLVs | defined information (see [RFC8665], [RFC8666], and [RFC8667]). These | |||
represent the SR information associated with the IGP node, link and | TLVs represent the SR information associated with the IGP node, link, | |||
prefix. The IGP instances originating these TLVs are assumed to | and prefix. The IGP instances originating these TLVs are assumed to | |||
support all the required security and authentication mechanisms (as | support all the required security and authentication mechanisms (as | |||
described in [RFC8667], [RFC8665] and [RFC8666]) in order to prevent | described in [RFC8665], [RFC8666], and [RFC8667]) in order to prevent | |||
any security issue when propagating the TLVs into BGP-LS. | any security issue when propagating the TLVs into BGP-LS. | |||
BGP-LS SR extensions enable traffic engineering use-cases within the | BGP-LS SR extensions enable traffic engineering use cases within the | |||
Segment Routing domain. SR operates within a trusted domain | SR domain. SR operates within a trusted domain [RFC8402], and its | |||
[RFC8402] and its security considerations also apply to BGP-LS | security considerations also apply to BGP-LS sessions when carrying | |||
sessions when carrying SR information. The SR traffic engineering | SR information. The SR traffic engineering policies using the SIDs | |||
policies using the SIDs advertised via BGP-LS are expected to be used | advertised via BGP-LS are expected to be used entirely within this | |||
entirely within this trusted SR domain (e.g. between multiple AS/ | trusted SR domain (e.g., between multiple ASes/domains within a | |||
domains within a single provider network). Therefore, precaution is | single provider network). Therefore, precaution is necessary to | |||
necessary to ensure that the link-state information (including SR | ensure that the link-state information (including SR information) | |||
information) advertised via BGP-LS sessions is limited to consumers | advertised via BGP-LS sessions is limited to consumers in a secure | |||
in a secure manner within this trusted SR domain. BGP peering | manner within this trusted SR domain. BGP peering sessions for | |||
sessions for address-families other than Link-State may be setup to | address families other than link state may be set up to routers | |||
routers outside the SR domain. The isolation of BGP-LS peering | outside the SR domain. The isolation of BGP-LS peering sessions is | |||
sessions is recommended to ensure that BGP-LS topology information | recommended to ensure that BGP-LS topology information (including the | |||
(including the newly added SR information) is not advertised to an | newly added SR information) is not advertised to an external BGP | |||
external BGP peering session outside the SR domain. | peering session outside the SR domain. | |||
6. Contributors | ||||
The following people have substantially contributed to the editing of | ||||
this document: | ||||
Peter Psenak | ||||
Cisco Systems | ||||
Email: ppsenak@cisco.com | ||||
Les Ginsberg | ||||
Cisco Systems | ||||
Email: ginsberg@cisco.com | ||||
Acee Lindem | ||||
Cisco Systems | ||||
Email: acee@cisco.com | ||||
Saikat Ray | ||||
Individual | ||||
Email: raysaikat@gmail.com | ||||
Jeff Tantsura | ||||
Apstra Inc. | ||||
Email: jefftant.ietf@gmail.com | ||||
7. Acknowledgements | ||||
The authors would like to thank Jeffrey Haas, Aijun Wang, Robert | ||||
Raszuk and Susan Hares for their review of this document and their | ||||
comments. The authors would also like to thank Alvaro Retana for his | ||||
extensive review and comments which helped correct issues and improve | ||||
the document. | ||||
8. References | ||||
8.1. Normative References | 6. References | |||
[I-D.ietf-lsr-ospf-prefix-originator] | 6.1. Normative References | |||
Wang, A., Lindem, A., Dong, J., Psenak, P., and K. | ||||
Talaulikar, "OSPF Prefix Originator Extensions", draft- | ||||
ietf-lsr-ospf-prefix-originator-07 (work in progress), | ||||
October 2020. | ||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC4202] Kompella, K., Ed. and Y. Rekhter, Ed., "Routing Extensions | [RFC4202] Kompella, K., Ed. and Y. Rekhter, Ed., "Routing Extensions | |||
in Support of Generalized Multi-Protocol Label Switching | in Support of Generalized Multi-Protocol Label Switching | |||
(GMPLS)", RFC 4202, DOI 10.17487/RFC4202, October 2005, | (GMPLS)", RFC 4202, DOI 10.17487/RFC4202, October 2005, | |||
<https://www.rfc-editor.org/info/rfc4202>. | <https://www.rfc-editor.org/info/rfc4202>. | |||
skipping to change at page 30, line 10 ¶ | skipping to change at line 1319 ¶ | |||
Bashandy, A., Gredler, H., and B. Decraene, "IS-IS | Bashandy, A., Gredler, H., and B. Decraene, "IS-IS | |||
Extensions for Segment Routing", RFC 8667, | Extensions for Segment Routing", RFC 8667, | |||
DOI 10.17487/RFC8667, December 2019, | DOI 10.17487/RFC8667, December 2019, | |||
<https://www.rfc-editor.org/info/rfc8667>. | <https://www.rfc-editor.org/info/rfc8667>. | |||
[RFC8668] Ginsberg, L., Ed., Bashandy, A., Filsfils, C., Nanduri, | [RFC8668] Ginsberg, L., Ed., Bashandy, A., Filsfils, C., Nanduri, | |||
M., and E. Aries, "Advertising Layer 2 Bundle Member Link | M., and E. Aries, "Advertising Layer 2 Bundle Member Link | |||
Attributes in IS-IS", RFC 8668, DOI 10.17487/RFC8668, | Attributes in IS-IS", RFC 8668, DOI 10.17487/RFC8668, | |||
December 2019, <https://www.rfc-editor.org/info/rfc8668>. | December 2019, <https://www.rfc-editor.org/info/rfc8668>. | |||
8.2. Informative References | [RFC9084] Wang, A., Lindem, A., Dong, J., Psenak, P., and K. | |||
Talaulikar, Ed., "OSPF Prefix Originator Extensions", | ||||
RFC 9084, DOI 10.17487/RFC9084, August 2021, | ||||
<https://www.rfc-editor.org/info/rfc9084>. | ||||
[I-D.ietf-isis-sr-yang] | 6.2. Informative References | |||
[ISIS-SR-YANG] | ||||
Litkowski, S., Qu, Y., Sarkar, P., Chen, I., and J. | Litkowski, S., Qu, Y., Sarkar, P., Chen, I., and J. | |||
Tantsura, "YANG Data Model for IS-IS Segment Routing", | Tantsura, "YANG Data Model for IS-IS Segment Routing", | |||
draft-ietf-isis-sr-yang-09 (work in progress), January | Work in Progress, Internet-Draft, draft-ietf-isis-sr-yang- | |||
2021. | 10, 21 February 2021, | |||
<https://datatracker.ietf.org/doc/html/draft-ietf-isis-sr- | ||||
yang-10>. | ||||
[I-D.ietf-ospf-sr-yang] | [OSPF-SR-YANG] | |||
Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, | Yeung, D., Qu, Y., Zhang, J., Chen, I., and A. Lindem, | |||
"YANG Data Model for OSPF SR (Segment Routing) Protocol", | "YANG Data Model for OSPF SR (Segment Routing) Protocol", | |||
draft-ietf-ospf-sr-yang-13 (work in progress), January | Work in Progress, Internet-Draft, draft-ietf-ospf-sr-yang- | |||
2021. | 15, 2 July 2021, <https://datatracker.ietf.org/doc/html/ | |||
draft-ietf-ospf-sr-yang-15>. | ||||
[I-D.ietf-spring-sr-yang] | ||||
Litkowski, S., Qu, Y., Lindem, A., Sarkar, P., and J. | ||||
Tantsura, "YANG Data Model for Segment Routing", draft- | ||||
ietf-spring-sr-yang-30 (work in progress), January 2021. | ||||
[RFC5706] Harrington, D., "Guidelines for Considering Operations and | [RFC5706] Harrington, D., "Guidelines for Considering Operations and | |||
Management of New Protocols and Protocol Extensions", | Management of New Protocols and Protocol Extensions", | |||
RFC 5706, DOI 10.17487/RFC5706, November 2009, | RFC 5706, DOI 10.17487/RFC5706, November 2009, | |||
<https://www.rfc-editor.org/info/rfc5706>. | <https://www.rfc-editor.org/info/rfc5706>. | |||
[RFC8661] Bashandy, A., Ed., Filsfils, C., Ed., Previdi, S., | [RFC8661] Bashandy, A., Ed., Filsfils, C., Ed., Previdi, S., | |||
Decraene, B., and S. Litkowski, "Segment Routing MPLS | Decraene, B., and S. Litkowski, "Segment Routing MPLS | |||
Interworking with LDP", RFC 8661, DOI 10.17487/RFC8661, | Interworking with LDP", RFC 8661, DOI 10.17487/RFC8661, | |||
December 2019, <https://www.rfc-editor.org/info/rfc8661>. | December 2019, <https://www.rfc-editor.org/info/rfc8661>. | |||
[RFC9020] Litkowski, S., Qu, Y., Lindem, A., Sarkar, P., and J. | ||||
Tantsura, "YANG Data Model for Segment Routing", RFC 9020, | ||||
DOI 10.17487/RFC9020, May 2021, | ||||
<https://www.rfc-editor.org/info/rfc9020>. | ||||
Acknowledgements | ||||
The authors would like to thank Jeffrey Haas, Aijun Wang, Robert | ||||
Raszuk, and Susan Hares for their review of this document and their | ||||
comments. The authors would also like to thank Alvaro Retana for his | ||||
extensive review and comments, which helped correct issues and | ||||
improve the document. | ||||
Contributors | ||||
The following people have substantially contributed to the editing of | ||||
this document: | ||||
Peter Psenak | ||||
Cisco Systems | ||||
Email: ppsenak@cisco.com | ||||
Les Ginsberg | ||||
Cisco Systems | ||||
Email: ginsberg@cisco.com | ||||
Acee Lindem | ||||
Cisco Systems | ||||
Email: acee@cisco.com | ||||
Saikat Ray | ||||
Individual | ||||
Email: raysaikat@gmail.com | ||||
Jeff Tantsura | ||||
Apstra Inc. | ||||
Email: jefftant.ietf@gmail.com | ||||
Authors' Addresses | Authors' Addresses | |||
Stefano Previdi | Stefano Previdi | |||
Huawei Technologies | Huawei Technologies | |||
Rome | Rome | |||
Italy | Italy | |||
Email: stefano@previdi.net | Email: stefano@previdi.net | |||
Ketan Talaulikar (editor) | Ketan Talaulikar (editor) | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
India | India | |||
Email: ketant@cisco.com | Email: ketant@cisco.com | |||
Clarence Filsfils | Clarence Filsfils | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
Brussels | Brussels | |||
Belgium | Belgium | |||
skipping to change at page 31, line 25 ¶ | skipping to change at line 1424 ¶ | |||
Email: cfilsfil@cisco.com | Email: cfilsfil@cisco.com | |||
Hannes Gredler | Hannes Gredler | |||
RtBrick Inc. | RtBrick Inc. | |||
Email: hannes@rtbrick.com | Email: hannes@rtbrick.com | |||
Mach(Guoyi) Chen | Mach(Guoyi) Chen | |||
Huawei Technologies | Huawei Technologies | |||
Huawei Building, No. 156 Beiqing Rd. | Huawei Building, No. 156 Beiqing Rd. | |||
Beijing 100095 | Beijing | |||
100095 | ||||
China | China | |||
Email: mach.chen@huawei.com | Email: mach.chen@huawei.com | |||
End of changes. 216 change blocks. | ||||
605 lines changed or deleted | 647 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |