draft-ietf-idr-ls-distribution-02.txt | draft-ietf-idr-ls-distribution-03.txt | |||
---|---|---|---|---|
Inter-Domain Routing H. Gredler | Inter-Domain Routing H. Gredler | |||
Internet-Draft Juniper Networks, Inc. | Internet-Draft Juniper Networks, Inc. | |||
Intended status: Standards Track J. Medved | Intended status: Standards Track J. Medved | |||
Expires: August 28, 2013 S. Previdi | Expires: November 22, 2013 S. Previdi | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
A. Farrel | A. Farrel | |||
Juniper Networks, Inc. | Juniper Networks, Inc. | |||
S. Ray | S. Ray | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
February 24, 2013 | May 21, 2013 | |||
North-Bound Distribution of Link-State and TE Information using BGP | North-Bound Distribution of Link-State and TE Information using BGP | |||
draft-ietf-idr-ls-distribution-02 | draft-ietf-idr-ls-distribution-03 | |||
Abstract | Abstract | |||
In a number of environments, a component external to a network is | In a number of environments, a component external to a network is | |||
called upon to perform computations based on the network topology and | called upon to perform computations based on the network topology and | |||
current state of the connections within the network, including | current state of the connections within the network, including | |||
traffic engineering information. This is information typically | traffic engineering information. This is information typically | |||
distributed by IGP routing protocols within the network | distributed by IGP routing protocols within the network | |||
This document describes a mechanism by which links state and traffic | This document describes a mechanism by which links state and traffic | |||
engineering information can be collected from networks and shared | engineering information can be collected from networks and shared | |||
with external components using the BGP routing protocol. This is | with external components using the BGP routing protocol. This is | |||
achieved using a new BGP Network Layer Reachability Information | achieved using a new BGP Network Layer Reachability Information | |||
(NLRI) encoding format. The mechanism is applicable to physical and | (NLRI) encoding format. The mechanism is applicable to physical and | |||
virtual links. The mechanism described is subject to policy control. | virtual IGP links. The mechanism described is subject to policy | |||
control. | ||||
Applications of this technique include Application Layer Traffic | Applications of this technique include Application Layer Traffic | |||
Optimization (ALTO) servers, and Path Computation Elements (PCEs). | Optimization (ALTO) servers, and Path Computation Elements (PCEs). | |||
Requirements Language | Requirements Language | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in RFC 2119 [RFC2119]. | document are to be interpreted as described in RFC 2119 [RFC2119]. | |||
skipping to change at page 2, line 10 | skipping to change at page 2, line 11 | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on August 28, 2013. | This Internet-Draft will expire on November 22, 2013. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2013 IETF Trust and the persons identified as the | Copyright (c) 2013 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 | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://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 . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
2. Motivation and Applicability . . . . . . . . . . . . . . . . . 5 | 2. Motivation and Applicability . . . . . . . . . . . . . . . . . 6 | |||
2.1. MPLS-TE with PCE . . . . . . . . . . . . . . . . . . . . . 5 | 2.1. MPLS-TE with PCE . . . . . . . . . . . . . . . . . . . . . 6 | |||
2.2. ALTO Server Network API . . . . . . . . . . . . . . . . . 7 | 2.2. ALTO Server Network API . . . . . . . . . . . . . . . . . 8 | |||
3. Carrying Link State Information in BGP . . . . . . . . . . . . 8 | 3. Carrying Link State Information in BGP . . . . . . . . . . . . 9 | |||
3.1. TLV Format . . . . . . . . . . . . . . . . . . . . . . . . 8 | 3.1. TLV Format . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
3.2. The Link State NLRI . . . . . . . . . . . . . . . . . . . 9 | 3.2. The Link State NLRI . . . . . . . . . . . . . . . . . . . 10 | |||
3.2.1. Identifier TLV . . . . . . . . . . . . . . . . . . . . 12 | 3.2.1. Node Descriptors . . . . . . . . . . . . . . . . . . . 13 | |||
3.2.2. Node Descriptors . . . . . . . . . . . . . . . . . . . 14 | 3.2.2. Link Descriptors . . . . . . . . . . . . . . . . . . . 17 | |||
3.2.3. Link Descriptors . . . . . . . . . . . . . . . . . . . 22 | 3.2.3. Prefix Descriptors . . . . . . . . . . . . . . . . . . 18 | |||
3.2.4. Prefix Descriptors . . . . . . . . . . . . . . . . . . 23 | 3.3. The LINK_STATE Attribute . . . . . . . . . . . . . . . . . 20 | |||
3.3. The LINK_STATE Attribute . . . . . . . . . . . . . . . . . 23 | 3.3.1. Node Attribute TLVs . . . . . . . . . . . . . . . . . 20 | |||
3.3.1. Link Attribute TLVs . . . . . . . . . . . . . . . . . 24 | 3.3.2. Link Attribute TLVs . . . . . . . . . . . . . . . . . 23 | |||
3.3.2. Node Attribute TLVs . . . . . . . . . . . . . . . . . 27 | 3.3.3. Prefix Attribute TLVs . . . . . . . . . . . . . . . . 27 | |||
3.3.3. Prefix Attributes TLVs . . . . . . . . . . . . . . . . 29 | 3.4. BGP Next Hop Information . . . . . . . . . . . . . . . . . 30 | |||
3.4. BGP Next Hop Information . . . . . . . . . . . . . . . . . 33 | 3.5. Inter-AS Links . . . . . . . . . . . . . . . . . . . . . . 31 | |||
3.5. Inter-AS Links . . . . . . . . . . . . . . . . . . . . . . 33 | 3.6. Router-ID Anchoring Example: ISO Pseudonode . . . . . . . 31 | |||
4. Link to Path Aggregation . . . . . . . . . . . . . . . . . . . 33 | 3.7. Router-ID Anchoring Example: OSPFv2 to IS-IS Migration . . 32 | |||
4.1. Example: No Link Aggregation . . . . . . . . . . . . . . . 34 | 4. Link to Path Aggregation . . . . . . . . . . . . . . . . . . . 32 | |||
4.2. Example: ASBR to ASBR Path Aggregation . . . . . . . . . . 34 | 4.1. Example: No Link Aggregation . . . . . . . . . . . . . . . 33 | |||
4.3. Example: Multi-AS Path Aggregation . . . . . . . . . . . . 35 | 4.2. Example: ASBR to ASBR Path Aggregation . . . . . . . . . . 33 | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 35 | 4.3. Example: Multi-AS Path Aggregation . . . . . . . . . . . . 34 | |||
6. Manageability Considerations . . . . . . . . . . . . . . . . . 35 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 34 | |||
6. Manageability Considerations . . . . . . . . . . . . . . . . . 34 | ||||
6.1. Operational Considerations . . . . . . . . . . . . . . . . 35 | 6.1. Operational Considerations . . . . . . . . . . . . . . . . 35 | |||
6.1.1. Operations . . . . . . . . . . . . . . . . . . . . . . 36 | 6.1.1. Operations . . . . . . . . . . . . . . . . . . . . . . 35 | |||
6.1.2. Installation and Initial Setup . . . . . . . . . . . . 36 | 6.1.2. Installation and Initial Setup . . . . . . . . . . . . 35 | |||
6.1.3. Migration Path . . . . . . . . . . . . . . . . . . . . 36 | 6.1.3. Migration Path . . . . . . . . . . . . . . . . . . . . 35 | |||
6.1.4. Requirements on Other Protocols and Functional | 6.1.4. Requirements on Other Protocols and Functional | |||
Components . . . . . . . . . . . . . . . . . . . . . . 36 | Components . . . . . . . . . . . . . . . . . . . . . . 35 | |||
6.1.5. Impact on Network Operation . . . . . . . . . . . . . 36 | 6.1.5. Impact on Network Operation . . . . . . . . . . . . . 35 | |||
6.1.6. Verifying Correct Operation . . . . . . . . . . . . . 37 | 6.1.6. Verifying Correct Operation . . . . . . . . . . . . . 36 | |||
6.2. Management Considerations . . . . . . . . . . . . . . . . 37 | 6.2. Management Considerations . . . . . . . . . . . . . . . . 36 | |||
6.2.1. Management Information . . . . . . . . . . . . . . . . 37 | 6.2.1. Management Information . . . . . . . . . . . . . . . . 36 | |||
6.2.2. Fault Management . . . . . . . . . . . . . . . . . . . 37 | 6.2.2. Fault Management . . . . . . . . . . . . . . . . . . . 36 | |||
6.2.3. Configuration Management . . . . . . . . . . . . . . . 37 | 6.2.3. Configuration Management . . . . . . . . . . . . . . . 36 | |||
6.2.4. Accounting Management . . . . . . . . . . . . . . . . 37 | 6.2.4. Accounting Management . . . . . . . . . . . . . . . . 36 | |||
6.2.5. Performance Management . . . . . . . . . . . . . . . . 37 | 6.2.5. Performance Management . . . . . . . . . . . . . . . . 36 | |||
6.2.6. Security Management . . . . . . . . . . . . . . . . . 38 | 6.2.6. Security Management . . . . . . . . . . . . . . . . . 37 | |||
7. TLV/SubTLV Code Points Summary . . . . . . . . . . . . . . . . 38 | 7. TLV/Sub-TLV Code Points Summary . . . . . . . . . . . . . . . 37 | |||
8. Security Considerations . . . . . . . . . . . . . . . . . . . 40 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 39 | |||
9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 40 | 9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 39 | |||
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 40 | 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 39 | |||
11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 40 | 11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 40 | |||
11.1. Normative References . . . . . . . . . . . . . . . . . . . 40 | 11.1. Normative References . . . . . . . . . . . . . . . . . . . 40 | |||
11.2. Informative References . . . . . . . . . . . . . . . . . . 42 | 11.2. Informative References . . . . . . . . . . . . . . . . . . 41 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 43 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 42 | ||||
1. Introduction | 1. Introduction | |||
The contents of a Link State Database (LSDB) or a Traffic Engineering | The contents of a Link State Database (LSDB) or a Traffic Engineering | |||
Database (TED) has the scope of an IGP area. Some applications, such | Database (TED) has the scope of an IGP area. Some applications, such | |||
as end-to-end Traffic Engineering (TE), would benefit from visibility | as end-to-end Traffic Engineering (TE), would benefit from visibility | |||
outside one area or Autonomous System (AS) in order to make better | outside one area or Autonomous System (AS) in order to make better | |||
decisions. | decisions. | |||
The IETF has defined the Path Computation Element (PCE) [RFC4655] as | The IETF has defined the Path Computation Element (PCE) [RFC4655] as | |||
a mechanism for achieving the computation of end-to-end TE paths that | a mechanism for achieving the computation of end-to-end TE paths that | |||
cross the visibility of more than one TED or which require CPU- | cross the visibility of more than one TED or which require CPU- | |||
intensive or coordinated computations. The IETF has also defined the | intensive or coordinated computations. The IETF has also defined the | |||
ALTO Server [RFC5693] as an entity that generates an abstracted | ALTO Server [RFC5693] as an entity that generates an abstracted | |||
network topology and provides it to network-aware applications. | network topology and provides it to network-aware applications. | |||
Both a PCE and an ALTO Server need to gather information about the | Both a PCE and an ALTO Server need to gather information about the | |||
topologies and capabilities of the network in order to be able to | topologies and capabilities of the network in order to be able to | |||
fulfill their function | fulfill their function. | |||
This document describes a mechanism by which Link State and TE | This document describes a mechanism by which Link State and TE | |||
information can be collected from networks and shared with external | information can be collected from networks and shared with external | |||
components using the BGP routing protocol [RFC4271]. This is | components using the BGP routing protocol [RFC4271]. This is | |||
achieved using a new BGP Network Layer Reachability Information | achieved using a new BGP Network Layer Reachability Information | |||
(NLRI) encoding format. The mechanism is applicable to physical and | (NLRI) encoding format. The mechanism is applicable to physical and | |||
virtual links. The mechanism described is subject to policy control. | virtual links. The mechanism described is subject to policy control. | |||
A router maintains one or more databases for storing link-state | A router maintains one or more databases for storing link-state | |||
information about nodes and links in any given area. Link attributes | information about nodes and links in any given area. Link attributes | |||
skipping to change at page 5, line 43 | skipping to change at page 6, line 43 | |||
routers in a POP. Abstracted topology can also be a mix of physical | routers in a POP. Abstracted topology can also be a mix of physical | |||
and virtual nodes and physical and virtual links. Furthermore, the | and virtual nodes and physical and virtual links. Furthermore, the | |||
BGP Speaker can apply policy to determine when information is updated | BGP Speaker can apply policy to determine when information is updated | |||
to the consumer so that there is reduction of information flow form | to the consumer so that there is reduction of information flow form | |||
the network to the consumers. Mechanisms through which topologies | the network to the consumers. Mechanisms through which topologies | |||
can be aggregated or virtualized are outside the scope of this | can be aggregated or virtualized are outside the scope of this | |||
document | document | |||
2. Motivation and Applicability | 2. Motivation and Applicability | |||
This section describes uses cases from which the requirements can be | This section describes use cases from which the requirements can be | |||
derived. | derived. | |||
2.1. MPLS-TE with PCE | 2.1. MPLS-TE with PCE | |||
As described in [RFC4655] a PCE can be used to compute MPLS-TE paths | As described in [RFC4655] a PCE can be used to compute MPLS-TE paths | |||
within a "domain" (such as an IGP area) or across multiple domains | within a "domain" (such as an IGP area) or across multiple domains | |||
(such as a multi-area AS, or multiple ASes). | (such as a multi-area AS, or multiple ASes). | |||
o Within a single area, the PCE offers enhanced computational power | o Within a single area, the PCE offers enhanced computational power | |||
that may not be available on individual routers, sophisticated | that may not be available on individual routers, sophisticated | |||
skipping to change at page 8, line 28 | skipping to change at page 9, line 28 | |||
+--------+ | | +--------+ | | |||
| Client |<--+ | | Client |<--+ | |||
+--------+ | +--------+ | |||
Figure 3: ALTO Server using network topology information | Figure 3: ALTO Server using network topology information | |||
3. Carrying Link State Information in BGP | 3. Carrying Link State Information in BGP | |||
This specification contains two parts: definition of a new BGP NLRI | This specification contains two parts: definition of a new BGP NLRI | |||
that describes links, nodes and prefixes comprising IGP link state | that describes links, nodes and prefixes comprising IGP link state | |||
information, and definition of a new BGP path attribute that carries | information, and definition of a new BGP path attribute (BGP-LS | |||
link, node and prefix properties and attributes, such as the link and | attribute) that carries link, node and prefix properties and | |||
prefix metric or node properties. | attributes, such as the link and prefix metric or auxiliary Router- | |||
IDs of nodes, etc. | ||||
3.1. TLV Format | 3.1. TLV Format | |||
Information in the new link state NLRIs and attributes is encoded in | Information in the new link state NLRIs and attributes is encoded in | |||
Type/Length/Value triplets. The TLV format is shown in Figure 4. | Type/Length/Value triplets. The TLV format is shown in Figure 4. | |||
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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | // Value (variable) // | |||
| Value (variable) | | ||||
| | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 4: TLV format | Figure 4: TLV format | |||
The Length field defines the length of the value portion in octets | The Length field defines the length of the value portion in octets | |||
(thus a TLV with no value portion would have a length of zero). The | (thus a TLV with no value portion would have a length of zero). The | |||
TLV is not padded to four-octet alignment. Unrecognized types are | TLV is not padded to four-octet alignment. Unrecognized types are | |||
ignored. | preserved and propagated. In order to compare NLRIs with unknown | |||
TLVs all TLVs MUST be ordered in ascending order. If there are more | ||||
TLVs of the same type, then the TLVs MUST be ordered in ascending | ||||
order of the TLV value within the set of TLVs with the same type. | ||||
All TLVs that are not specified as mandatory are considered optional. | ||||
3.2. The Link State NLRI | 3.2. The Link State NLRI | |||
The MP_REACH and MP_UNREACH attributes are BGP's containers for | The MP_REACH and MP_UNREACH attributes are BGP's containers for | |||
carrying opaque information. Each Link State NLRI describes either a | carrying opaque information. Each Link State NLRI describes either a | |||
node, a link or a prefix. | node, a link or a prefix. | |||
All link, node and prefix information SHALL be encoded using a TBD | All non-VPN link, node and prefix information SHALL be encoded using | |||
AFI / TBD SAFI header into those attributes. | AFI 16388 / SAFI 71. VPN link, node and prefix information SHALL be | |||
encoded using AFI 16388 / SAFI 128. | ||||
In order for two BGP speakers to exchange Link-State NLRI, they MUST | In order for two BGP speakers to exchange Link-State NLRI, they MUST | |||
use BGP Capabilities Advertisement to ensure that they both are | use BGP Capabilities Advertisement to ensure that they both are | |||
capable of properly processing such NLRI. This is done as specified | capable of properly processing such NLRI. This is done as specified | |||
in [RFC4760], by using capability code 1 (multi-protocol BGP), with | in [RFC4760], by using capability code 1 (multi-protocol BGP), with | |||
an AFI/SAFI TBD. | an AFI 16388 / SAFI 71 and AFI 16388 / SAFI 128 for the VPN flavor. | |||
The format of the Link State NLRI is shown in the following figure. | The format of the Link State NLRI is shown in the following figure. | |||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| NLRI Type | Total NLRI Length | | | NLRI Type | Total NLRI Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
| Link-State NLRI (variable) | | // Link-State NLRI (variable) // | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 5: Link State SAFI (TBD) NLRI Format | Figure 5: Link State AFI 16388 / SAFI 71 NLRI 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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| NLRI Type | Total NLRI Length | | | NLRI Type | Total NLRI Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
+ Route Distinguisher + | + Route Distinguisher + | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
| Link-State NLRI (variable) | | // Link-State NLRI (variable) // | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 6: Link State SAFI 128 NLRI Format | Figure 6: Link State VPN AFI 16388 / SAFI 128 NLRI Format | |||
The 'Total NLRI Length' field contains the cumulative length of rest | The 'Total NLRI Length' field contains the cumulative length, in | |||
of the NLRI not including the NLRI Type field or itself. For VPN | octets, of rest of the NLRI not including the NLRI Type field or | |||
applications it also includes the length of the Route Distinguisher. | itself. For VPN applications it also includes the length of the | |||
Route Distinguisher. | ||||
The 'NLRI Type' field can contain one of the following values: | The 'NLRI Type' field can contain one of the following values: | |||
Type = 1: Link NLRI, contains link descriptors and link attributes | Type = 1: Node NLRI | |||
Type = 2: Node NLRI, contains node attributes | Type = 2: Link NLRI | |||
Type = 3: IPv4 Topology Prefix NLRI | Type = 3: IPv4 Topology Prefix NLRI | |||
Type = 4: IPv6 Topology Prefix NLRI | Type = 4: IPv6 Topology Prefix NLRI | |||
The Link NLRI (NLRI Type = 1) is shown in the following figure. | The Node NLRI (NLRI Type = 1) is shown in the following figure. | |||
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 | |||
+-+-+-+-+-+-+-+-+ | ||||
| Protocol-ID | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Protocol-ID | Reserved | | | | Identifier | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | (64 bits) | | |||
| Identifier (variable) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Local Node Descriptors (variable) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Remote Node Descriptors (variable) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Link Descriptors (variable) | | // Local Node Descriptors (variable) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 7: The Link NLRI format | Figure 7: The Node NLRI format | |||
The Node NLRI (NLRI Type = 2) is shown in the following figure. | The Link NLRI (NLRI Type = 2) is shown in the following figure. | |||
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 | |||
+-+-+-+-+-+-+-+-+ | ||||
| Protocol-ID | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Protocol-ID | Reserved | | | | Identifier | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | (64 bits) | | |||
| Identifier (variable) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Local Node Descriptors (variable) | | // Local Node Descriptors (variable) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
// Remote Node Descriptors (variable) // | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
// Link Descriptors (variable) // | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 8: The Node NLRI format | Figure 8: The Link NLRI format | |||
The IPv4 and IPv6 Prefix NLRIs (NLRI Type = 3 and Type = 4) use the | The IPv4 and IPv6 Prefix NLRIs (NLRI Type = 3 and Type = 4) use the | |||
same format as shown in the following figure. | same format as shown in the following figure. | |||
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 | |||
+-+-+-+-+-+-+-+-+ | ||||
| Protocol-ID | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Protocol-ID | Reserved | | | | Identifier | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | (64 bits) | | |||
| Identifier (variable) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Local Node Descriptor (variable) | | // Local Node Descriptor (variable) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Reachability information (variable; one or more prefixes) | | // Prefix Descriptors (variable) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 9: The IPv4/IPv6 Topology Prefix NLRI format | Figure 9: The IPv4/IPv6 Topology Prefix NLRI format | |||
The 'Protocol-ID' field can contain one of the following values: | The 'Protocol-ID' field can contain one of the following values: | |||
Protocol-ID = 0: Unknown, The source of NLRI information could not | Protocol-ID = 0: Unknown, The source of NLRI information could not | |||
be determined | be determined | |||
Protocol-ID = 1: IS-IS Level 1, The NLRI information has been | Protocol-ID = 1: IS-IS Level 1, The NLRI information has been | |||
skipping to change at page 11, line 40 | skipping to change at page 13, line 14 | |||
Protocol-ID = 3: OSPF, The NLRI information has been sourced by | Protocol-ID = 3: OSPF, The NLRI information has been sourced by | |||
OSPF | OSPF | |||
Protocol-ID = 4: Direct, The NLRI information has been sourced | Protocol-ID = 4: Direct, The NLRI information has been sourced | |||
from local interface state | from local interface state | |||
Protocol-ID = 5: Static, The NLRI information has been sourced by | Protocol-ID = 5: Static, The NLRI information has been sourced by | |||
static configuration | static configuration | |||
Both OSPF and IS-IS may run multiple routing protocol instances over | Both OSPF and IS-IS may run multiple routing protocol instances over | |||
the same link. See [RFC6822] and [RFC6549]. | the same link. See [RFC6822] and [RFC6549]. These instances define | |||
independent "routing universes". The 64-Bit 'Identifier' field is | ||||
Identifier TLV is a mandatory TLV containing identifiers of the NLRI | used to identify the "routing universe" where the NLRI belongs. The | |||
and used to associate the NLRI to an instance, a domain, an area or a | NLRIs representing IGP objects (nodes, links or prefixes) from the | |||
prefix. | same routing universe MUST have the same 'Identifier' value; NLRIs | |||
with different 'Identifier' values MUST be considered to be from | ||||
Each Node Descriptor and Link Descriptor consists of one or more TLVs | different routing universes. Table Table 1 lists the 'Identifier' | |||
described in the following sections. The sender of an UPDATE message | values that are defined as well-known in this draft. | |||
MUST order the TLVs within a Node Descriptor or a Link Descriptor in | ||||
ascending order of TLV type. | ||||
3.2.1. Identifier TLV | ||||
Identifier TLV (Type 256) is a mandatory TLV that appear in Node, | ||||
Link and Prefix NLRIs. Identifier TLV carries all identifiers | ||||
associated with the NLRI in a SubTLV format. Possible Sub TLVs are | ||||
Instance Identifier, Domain Identifier, Area Identifier, OSPF Route | ||||
Type and Multi-Topology ID. | ||||
0 1 2 3 | ||||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Type | Length | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Identifier Sub-TLVs (variable) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
Where: | ||||
Type: 256 | ||||
Length: variable | ||||
Identifier Sub-TLVs: Identifiers | ||||
Figure 10: Identifier TLV Format | ||||
An Identifier may be used to distinguish a Node, a Link or a Prefix | ||||
with different types of identifiers. Therefore different SubTLVs are | ||||
defined here below in order to address the different requirements. | ||||
3.2.1.1. Instance Identifier SubTLV | ||||
Instance Identifier is a mandatory SubTLV that MUST be present in all | ||||
NLRIs. It is used to identify the topology instance the content of | ||||
the NLRI and attributes refers to. | ||||
0 1 2 3 | ||||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Type | Length | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Instance Identifier (variable) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
Where: | ||||
Type: 1 | ||||
Length: variable | ||||
Figure 11: Instance Identifier Sub-TLV Format | ||||
3.2.1.2. Domain Identifier SubTLV | ||||
Domain Identifier is an optional SubTLV that MAY be present in all | ||||
NLRIs. It is used to identify the domain (or sub-domain) to which | ||||
the NLRI belongs. | ||||
0 1 2 3 | ||||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Type | Length | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Domain Identifier (variable) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
Where: | ||||
Type: 2 | ||||
Length: variable | ||||
Figure 12: Domain Identifier Sub-TLV Format | ||||
3.2.1.3. Area Identifier SubTLV | ||||
Area Identifier is an optional SubTLV that MAY be present in all | ||||
NLRIs. It is used to identify the area to which the NLRI belongs. | ||||
Example: an OSPF ABR router advertises itself multiple time (one for | ||||
each area it participates into). Area Identifier allows the | ||||
different NLRIs of the same router to be discriminated. | ||||
0 1 2 3 | ||||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Type | Length | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Area Identifier (variable) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
Where: | ||||
Type: 3 | ||||
Length:variable | ||||
Figure 13: Area Identifier Sub-TLV Format | ||||
3.2.1.4. OSPF Route Type SubTLV | ||||
Route Type is an optional SubTLV that MAY be present in the Prefix | ||||
NLRIs. It is used to identify the OSPF route-type of the prefix. It | ||||
is used when an OSPF prefix is advertised in the OSPF domain with | ||||
multiple different route-types. The Route Type Identifier allows to | ||||
discriminate these advertisements. | ||||
0 1 2 3 | ||||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Type | Length | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Route Type | | ||||
+-+-+-+-+-+-+-+-+ | ||||
Where: | +------------+---------------------+ | |||
| Identifier | Routing Universe | | ||||
+------------+---------------------+ | ||||
| 0 | L3 packet topology | | ||||
| 1 | L1 optical topology | | ||||
+------------+---------------------+ | ||||
Type: 4 | Table 1: Well-known Instance Identifiers | |||
Length: 1 | ||||
Figure 14: OSPF Route Type Sub-TLV Format | Each Node Descriptor and Link Descriptor consists of one or more TLVs | |||
described in the following sections. | ||||
OSPF Route Type can be either: Intra-Area (0x1), Inter-Area (0x2), | 3.2.1. Node Descriptors | |||
External 1 (0x3), External 2 (0x4), NSSA (0x5) and is encoded in a 3 | ||||
bits number. For prefixes learned from IS-IS, this field MUST to be | ||||
set to 0x0 on transmission. | ||||
3.2.1.5. Multi Topology ID SubTLV | Each link is anchored by a pair of Router-IDs that are used by the | |||
underlying IGP, namely, 48 Bit ISO System-ID for IS-IS and 32 bit | ||||
Router-ID for OSPFv2 and OSPFv3. An IGP may use one or more | ||||
additional auxiliary Router-IDs, mainly for traffic engineering | ||||
purposes. For example, IS-IS may have one or more IPv4 and IPv6 TE | ||||
Router-IDs [RFC5305], [RFC6119]. These auxiliary Router-IDs MUST be | ||||
included in the link attribute described in Section Section 3.3.2. | ||||
The Multi Topology ID SubTLV (type: 5) carries the Multi Topology ID | It is desirable that the Router-ID assignments inside the Node | |||
for the link, node or prefix. The semantics of the Multi Topology ID | Descriptor are globally unique. However there may be Router-ID | |||
are defined in RFC5120, Section 7.2 [RFC5120], and the OSPF Multi | spaces (e.g. ISO) where no global registry exists, or worse, Router- | |||
Topology ID), defined in RFC4915, Section 3.7 [RFC4915]. If the | IDs have been allocated following private-IP RFC 1918 [RFC1918] | |||
value in the Multi Topology ID TLV is derived from OSPF, then the | allocation. We use Autonomous System (AS) Number and BGP-LS | |||
upper 9 bits of the Multi Topology ID are set to 0. | Identifier in order to disambiguate the Router-IDs, as described in | |||
Section 3.2.1.1. | ||||
0 1 2 3 | 3.2.1.1. Globally Unique Node/Link/Prefix Identifiers | |||
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 | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
|R R R R| Multi Topology ID | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
Figure 15: Multi Topology ID SubTLV format | One problem that needs to be addressed is the ability to identify an | |||
IGP node globally (by "global", we mean within the BGP-LS database | ||||
collected by all BGP-LS speakers that talk to each other). This can | ||||
be expressed through the following two requirements: | ||||
The Multi Topology Identifier SubTLV is present in any NLRI Type. | (A) The same node must not be represented by two keys (otherwise one | |||
node will look like two nodes). | ||||
3.2.2. Node Descriptors | (B) Two different nodes must not be represented by the same key | |||
(otherwise, two nodes will look like one node). | ||||
Each link gets anchored by at least a pair of router-IDs. Since | We define an "IGP domain" to be the set of nodes (hence, by extension | |||
there are many Router-IDs formats (32 Bit IPv4 router-ID, 56 Bit ISO | links and prefixes), within which, each node has a unique IGP | |||
Node-ID and 128 Bit IPv6 router-ID) a link may be anchored by more | representation by using the combination of Area-ID, Router-ID, | |||
than one Router-ID pair. The set of Local and Remote Node | Protocol, Topology-ID, and Instance ID. The problem is that BGP may | |||
Descriptors describe which Protocols Router-IDs will be following to | receive node/link/prefix information from multiple independent "IGP | |||
"anchor" the link described by the "Link attribute TLVs". There must | domains" and we need to distinguish between them. Moreover, we can't | |||
be at least one "like" router-ID pair of a Local Node Descriptors and | assume there is always one and only one IGP domain per AS. During | |||
a Remote Node Descriptors per-protocol. If a peer sends an illegal | IGP transitions it may happen that two redundant IGPs are in place. | |||
combination in this respect, then this is handled as an NLRI error, | ||||
described in [RFC4760]. | ||||
It is desirable that the Router-ID assignments inside the Node anchor | In section Section 3.2.1.4 a set of sub-TLVs is described, which | |||
are globally unique. However there may be router-ID spaces (e.g. | allows to specify a flexible key for any given Node/Link information | |||
ISO) where not even a global registry exists, or worse, Router-IDs | such that global uniqueness of the NLRI is ensured. | |||
have been allocated following private-IP RFC 1918 [RFC1918] | ||||
allocation. We use AS Number (or Confederation ID) and BGP | ||||
Identifier in order to disambiguate the Router-IDs, as described in | ||||
Section 3.2.2.4. | ||||
3.2.2.1. Local Node Descriptors | 3.2.1.2. Local Node Descriptors | |||
The Local Node Descriptors TLV (Type 257) contains Node Descriptors | The Local Node Descriptors TLV contains Node Descriptors for the node | |||
for the node anchoring the local end of the link. The length of this | anchoring the local end of the link. This is a mandatory TLV in all | |||
TLV is variable. The value contains one or more Node Descriptor Sub- | three types of NLRIs. The length of this TLV is variable. The value | |||
TLVs defined in Section 3.2.2.3. | contains one or more Node Descriptor Sub-TLVs defined in | |||
Section 3.2.1.4. | ||||
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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
| Node Descriptor Sub-TLVs (variable) | | // Node Descriptor Sub-TLVs (variable) // | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 16: Local Node Descriptors TLV format | Figure 10: Local Node Descriptors TLV format | |||
3.2.2.2. Remote Node Descriptors | 3.2.1.3. Remote Node Descriptors | |||
The Remote Node Descriptors TLV (Type 258) contains Node Descriptors | The Remote Node Descriptors contains Node Descriptors for the node | |||
for the node anchoring the remote end of the link. The length of | anchoring the remote end of the link. This is a mandatory TLV for | |||
this TLV is variable. The value contains one or more Node Descriptor | link NLRIs. The length of this TLV is variable. The value contains | |||
Sub-TLVs defined in Section 3.2.2.3. | one or more Node Descriptor Sub-TLVs defined in Section 3.2.1.4. | |||
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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
| Node Descriptor Sub-TLVs (variable) | | // Node Descriptor Sub-TLVs (variable) // | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 17: Remote Node Descriptors TLV format | Figure 11: Remote Node Descriptors TLV format | |||
3.2.2.3. Node Descriptor Sub-TLVs | 3.2.1.4. Node Descriptor Sub-TLVs | |||
The Node Descriptor Sub-TLV type codepoints and lengths are listed in | The Node Descriptor Sub-TLV type codepoints and lengths are listed in | |||
the following table: | the following table: | |||
+------------+-------------------+----------+ | +--------------------+-------------------+----------+ | |||
| TLV/SubTLV | Description | Length | | | Sub-TLV Code Point | Description | Length | | |||
+------------+-------------------+----------+ | +--------------------+-------------------+----------+ | |||
| 259 | Autonomous System | 4 | | | 512 | Autonomous System | 4 | | |||
| 260 | BGP Identifier | 4 | | | 513 | BGP-LS Identifier | 4 | | |||
| 261 | ISO Node-ID | 7 | | | 514 | Area-ID | 4 | | |||
| 262 | IPv4 Router-ID | variable | | | 515 | IGP Router-ID | Variable | | |||
| 263 | IPv6 Router-ID | 16 | | +--------------------+-------------------+----------+ | |||
+------------+-------------------+----------+ | ||||
Table 1: Node Descriptor Sub-TLVs | Table 2: Node Descriptor Sub-TLVs | |||
The TLV values in Node Descriptor Sub-TLVs are defined as follows: | The sub-TLV values in Node Descriptor TLVs are defined as follows: | |||
Autonomous System: opaque value (32 Bit AS Number) | Autonomous System: opaque value (32 Bit AS Number) | |||
BGP-Identifier: opaque value (32 Bit AS ID); uniquely identifying | BGP-LS Identifier: opaque value (32 Bit ID). In conjunction with | |||
the BGP-LS speaker within an AS. | ASN, uniquely identifies the BGP-LS domain. The combination of | |||
ASN and BGP-LS ID MUST be globally unique. All BGP-LS speakers | ||||
IPv4 Router ID: opaque value (can be an IPv4 address or an 32 Bit | within an IGP flooding-set (set of IGP nodes within which an LSP/ | |||
router ID). When encoding an OSPF Designated Router ID, the | LSA is flooded) MUST use the same ASN, BGP-LS ID tuple. If an IGP | |||
length is 8 (first 4 bytes is the Router-ID originating the Type-2 | domain consists of multiple flooding-sets, then all BGP-LS | |||
LSA and next 4 bytes are taken from the Type-2 LSA ID). In other | speakers within the IGP domain SHOULD use the same ASN, BGP-LS ID | |||
cases, the length is 4. | tuple. The ASN, BGP Router-ID tuple (which is globally unique | |||
[RFC6286] ) of one of the BGP-LS speakers within the flooding-set | ||||
IPv6 Router ID: opaque value (can be an IPv6 address or 128 Bit | (or IGP domain) may be used for all BGP-LS speakers in that | |||
router ID). | flooding-set (or IGP domain). | |||
ISO Node ID: ISO node-ID (6 octets ISO system-ID) followed by a PSN | ||||
octet in case LAN "Pseudonode" information gets advertised. The | ||||
PSN octet must be zero for non-LAN "Pseudonodes". | ||||
There can be at most one instance of each TLV type present in any | ||||
Node Descriptor. The TLV ordering within a Node descriptor MUST | ||||
be kept in order of increasing numeric value of type. TLVs 259 | ||||
and 260 specify administrative context in which TLVs 261-263 are | ||||
to be evaluated. The first TLV from range 261-263 is to be | ||||
interpreted as the primary node identifier by which the node can | ||||
be referenced within its administrative contexts. Any further | ||||
TLVs are to be treated as secondary identifiers, which may be used | ||||
for cross-reference, but are to be treated as if they are object | ||||
attributes. | ||||
3.2.2.4. Globally Unique BGP-LS Identifiers | ||||
One problem that needs to be addressed is the ability to identify an | ||||
IGP node globally (by "global", we mean within the BGP-LS database | ||||
collected by all BGP-LS speakers that talk to each other). This can | ||||
be expressed through the following two requirements: | ||||
(A) The same node must not be represented by two keys (otherwise one | ||||
node will look like two nodes). | ||||
(B) Two different nodes must not be represented by the same key | ||||
(otherwise, two nodes will look like one node). | ||||
We define an "IGP domain" to be the set of nodes (and links), within | ||||
which, each node has a unique IGP representation by using the | ||||
combination of area-id, IGP router-id, Level, instance ID, etc. The | ||||
problem is that BGP brings nodes from multiple independent "IGP | ||||
domains" and we need to distinguish between them. Moreover, we can't | ||||
assume there is always one and only one IGP domain per Autonomous | ||||
System (or Autonomous System confederation member). Following cases | ||||
illustrate scenario's where IGP domain and ASs boundaries do not | ||||
match. | ||||
(i) Stub ASs or non-contiguous AS: One can have an AS that has | Area ID: It is used to identify the 32 Bit area to which the NLRI | |||
disjoint parts, each running an independent IGP domain. | belongs. Area Identifier allows the different NLRIs of the same | |||
router to be discriminated. | ||||
IGP domain 1 IGP domain 2 | IGP Router ID: opaque value. This is a mandatory TLV. For an IS-IS | |||
AS 1 AS 1 | non-Pseudonode, this contains 6 octet ISO node-ID (ISO system-ID). | |||
+---+ +---+ | For an IS-IS Pseudonode corresponding to a LAN, this contains 6 | |||
| | | | | octet ISO node-ID of the "Designated Intermediate System" (DIS) | |||
+---+ +---+ | followed by one octet nonzero PSN identifier (7 octet in total). | |||
\ / | For an OSPFv2 or OSPFv3 non-"Pseudonode", this contains 4 octet | |||
+---------+ | Router-ID. For an OSPFv2 "Pseudonode" representing a LAN, this | |||
| | | contains 4 octet Router-ID of the designated router (DR) followed | |||
+---------+ | by 4 octet IPv4 address of the DR's interface to the LAN (8 octet | |||
Transit AS | in total). Similarly, for an OSPFv3 "Pseudonode", this contains 4 | |||
octet Router-ID of the DR followed by 4 octet interface identifier | ||||
of the DR's interface to the LAN (8 octet in total). The TLV size | ||||
in combination with protocol identifier enables the decoder to | ||||
determine the type of the node. | ||||
Figure 18: Stub-ASs or non-contiguous AS | There can be at most one instance of each sub-TLV type present in | |||
any Node Descriptor. The TLV ordering within a Node descriptor | ||||
MUST be kept in order of increasing numeric value of type. This | ||||
needs to be done in order to compare NLRIs, even when an | ||||
implementation encounters an unknown sub-TLV. Using stable | ||||
sorting an implementation can do binary comparison of NLRIs and | ||||
hence allow incremental deployment of new key sub-TLVs. | ||||
Using ASN to globally identify IGP node may break requirement (B). | 3.2.1.5. Multi-Topology ID | |||
(ii) It is possible to run the same IGP domain across multiple AS. | The Multi-Topology ID (MT-ID) TLV carries one or more IS-IS or OSPF | |||
Multi-Topology IDs for a link, node or prefix. | ||||
+----------------------+ | Semantics of the IS-IS MT-ID are defined in RFC5120, Section 7.2 | |||
| +------+ +------+ | | [RFC5120]. Semantics of the OSPF MT-ID are defined in RFC4915, | |||
| | AS 1 | | AS 2 | | | Section 3.7 [RFC4915]. If the value in the MT-ID TLV is derived from | |||
| +------+ +------+ | | OSPF, then the upper 9 bits MUST be set to 0. Bits R are reserved, | |||
+----------------------+ | SHOULD be set to 0 when originated and ignored on receipt. | |||
IGP domain | ||||
Figure 19: IGP Domain | The format of the MT-ID TLV is shown in the following figure. | |||
Using ASN to globally identify IGP node will break requirement (A). | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Type | Length=2*n | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
|R R R R| Multi-Topology ID 1 | .... // | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
// .... |R R R R| Multi-Topology ID n | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
(iii) It is possible to run IGP across member-ASs in a confederation. | Figure 12: Multi-Topology ID TLV format | |||
+-------------------------------+ | where Type is 263, Length is 2*n and n is the number of MT-IDs | |||
| +--------------------------+ | | carried in the TLV. | |||
| | +--------+ +--------+ | | | ||||
| | | member | | member | | | | ||||
| | | AS 1 | | AS 2 | | | | ||||
| | +--------+ +--------+ | | | ||||
| +--------------------------+ | | ||||
| IGP domain | | ||||
+-------------------------------+ | ||||
Confederation (confed-id 1) | ||||
Figure 20: Confederation | The MT-ID TLV MAY be present in a Link Descriptor, a Prefix | |||
Descriptor, or in the BGP-LS attribute of a node NLRI. In Link or | ||||
Prefix Descriptor, only one MT-ID TLV containing only the MT-ID of | ||||
the topology where the link or the prefix belongs is allowed. In the | ||||
BGP-LS attribute of a node NLRI, one MT-ID TLV containing the array | ||||
of MT-IDs of all topologies where the node belongs can be present. | ||||
Using a Confederation/MemberAS identifier to globally identify IGP | 3.2.2. Link Descriptors | |||
node will break requirement (A). | ||||
(iv) It is possible to run more than one IGP domain within an AS by | The 'Link Descriptor' field is a set of Type/Length/Value (TLV) | |||
setting up "transit BGP speakers". | triplets. The format of each TLV is shown in Section 3.1. The 'Link | |||
descriptor' TLVs uniquely identify a link among multiple parallel | ||||
links between a pair of anchor routers. A link described by the Link | ||||
descriptor TLVs actually is a "half-link", a unidirectional | ||||
representation of a logical link. In order to fully describe a | ||||
single logical link two originating routers advertise a half-link | ||||
each, i.e. two link NLRIs are advertised for a given point-to-point | ||||
link. | ||||
+---------------------------------+ | The format and semantics of the 'value' fields in most 'Link | |||
| +----------+ +----------+ | | Descriptor' TLVs correspond to the format and semantics of value | |||
| | IGP | +---+ | IGP | | | fields in IS-IS Extended IS Reachability sub-TLVs, defined in | |||
| | domain 1 +-+ +-+ domain 2 | | | [RFC5305], [RFC5307] and [RFC6119]. Although the encodings for 'Link | |||
| +----------+ +---+ +----------+ | | Descriptor' TLVs were originally defined for IS-IS, the TLVs can | |||
| ^ | | carry data sourced either by IS-IS or OSPF. | |||
| | | | ||||
| Transit BGP node | | ||||
+---------------------------------+ | ||||
AS 1 | ||||
Figure 21: Transit BGP Node | The following TLVs are valid as Link Descriptors in the Link NLRI: | |||
Using ASN to globally identify IGP node may break requirement (A). | +-----------+---------------------+---------------+-----------------+ | |||
| TLV Code | Description | IS-IS | Value defined | | ||||
| Point | | TLV/Sub-TLV | in: | | ||||
+-----------+---------------------+---------------+-----------------+ | ||||
| 258 | Link Local/Remote | 22/4 | [RFC5307]/1.1 | | ||||
| | Identifiers | | | | ||||
| 259 | IPv4 interface | 22/6 | [RFC5305]/3.2 | | ||||
| | address | | | | ||||
| 260 | IPv4 neighbor | 22/8 | [RFC5305]/3.3 | | ||||
| | address | | | | ||||
| 261 | IPv6 interface | 22/12 | [RFC6119]/4.2 | | ||||
| | address | | | | ||||
| 262 | IPv6 neighbor | 22/13 | [RFC6119]/4.3 | | ||||
| | address | | | | ||||
| 263 | Multi-Topology | --- | Section 3.2.1.5 | | ||||
| | Identifier | | | | ||||
+-----------+---------------------+---------------+-----------------+ | ||||
In summary, there is no strict relation between BGP AS division and | Table 3: Link Descriptor TLVs | |||
IGP domains. Therefore, the following mechanism is proposed to | ||||
address the requirements. We assume that a BGP-LS speaker is | ||||
collocated with one and only one IGP node. The BGP-LS speaker | ||||
originates BGP-LS NLRIs that correspond to the objects in the LSDB of | ||||
that IGP node. | ||||
We embed a "string" (identifier) in the node descriptor to globally | 3.2.3. Prefix Descriptors | |||
identify the node. The question is how we construct such a string, | ||||
and what should be the scope of such a string so that the | ||||
construction of the string can be simple. Let the set of IGP nodes | ||||
within which LSA/LSP flooding is limited to be the "flooding set". | ||||
Consider a given "flooding set". We have the following three | ||||
possibilities: | ||||
Case a) There is no BGP LS speaker running on any node in the | The 'Prefix Descriptor' field is a set of Type/Length/Value (TLV) | |||
flooding set. | triplets. 'Prefix Descriptor' TLVs uniquely identify an IPv4 or IPv6 | |||
Prefix originated by a Node. The following TLVs are valid as Prefix | ||||
Descriptors in the IPv4/IPv6 Prefix NLRI: | ||||
Case b) There is one BGP LS speaker running on one node in the | +--------------+-----------------------+----------+-----------------+ | |||
flooding set. | | TLV Code | Description | Length | Value defined | | |||
| Point | | | in: | | ||||
+--------------+-----------------------+----------+-----------------+ | ||||
| 263 | Multi-Topology | variable | Section 3.2.1.5 | | ||||
| | Identifier | | | | ||||
| 264 | OSPF Route Type | 1 | Section 3.2.3.1 | | ||||
| 265 | IP Reachability | variable | Section 3.2.3.2 | | ||||
| | Information | | | | ||||
+--------------+-----------------------+----------+-----------------+ | ||||
Case c) There is more than one BGP LS speakers running on the nodes | Table 4: Prefix Descriptor TLVs | |||
in the flooding set. | ||||
For Case a), the nodes in that flooding set do not appear in BGP LS | 3.2.3.1. OSPF Route Type | |||
database. So we can ignore that case for this discussion. To | ||||
satisfy requirement (B), the string we use in different IGP domains | ||||
must be different. One possible approach is as follows: | ||||
Approach 1) The user configures a unique "string" on all BGP LS | OSPF Route Type is an optional TLV that MAY be present in Prefix | |||
speakers within one IGP domain. | NLRIs. It is used to identify the OSPF route-type of the prefix. It | |||
is used when an OSPF prefix is advertised in the OSPF domain with | ||||
multiple different route-types. The Route Type TLV allows to | ||||
discriminate these advertisements. The format of the OSPF Route Type | ||||
TLV is shown in the following figure. | ||||
Now we make an observation that simplifies the task: it is sufficient | 0 1 2 3 | |||
to have a unique "string" per flooding set. | 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 | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Route Type | | ||||
+-+-+-+-+-+-+-+-+ | ||||
When we have a unique string per flooding set, then two nodes in | Figure 13: OSPF Route Type TLV Format | |||
different IGP domains, which by definition belong to different | ||||
flooding sets, would have different "strings". So requirement B) is | ||||
satisfied. On the other hand, a given node appears only in the LSDB | ||||
of the nodes in the same flooding set. So a given node will always | ||||
have only one "string" and we satisfy requirement A). Given this, we | ||||
have: | ||||
Approach 2) Each BGP LS speaker uses the <Autonomous System Number, | where the Type and Length fields of the TLV are defined in Table 4. | |||
BGP Identifier> as the string. | The OSPF Route Type field values are defined in the OSPF protocol, | |||
and can be one of the following: | ||||
The combination of <Autonomous System, BGP Identifier> is globally | Intra-Area (0x1) | |||
unique, as per [RFC6286]. | ||||
For Case b), which is the simplest BGP-LS deployment scenario, this | Inter-Area (0x2) | |||
approach requires no additional configuration from the user. | ||||
For Case c), however, if each BGP-LS speaker in the given flooding | External 1 (0x3) | |||
set attaches its own <Autonomous System, BGP Identifier>, then we | ||||
will violate requirement A). So that case, the user needs to choose | ||||
one of the BGP-LS speakers in the flooding set as the "chosen | ||||
speaker" and configure the rest of the BGP-LS speakers in that | ||||
flooding set to use the <Autonomous System, BGP Identifier> | ||||
combination of the "chosen speaker". | ||||
When an IGP node belongs to two or more flooding sets, it views | External 2 (0x4) | |||
itself as a collocation of one node per flooding set and accordingly | ||||
encodes the NLRIs. Consider the following example: | ||||
Level-1 level-1-2 level-1 | NSSA 1 (0x5) | |||
N1 N0 N2 | ||||
+---+ link1 +---+ link 2 +---+ | ||||
| +-------+ +---------+ | | ||||
+---+ +---+ +---+ | ||||
|<- Level 1 ->| |<- level 2 ->| | ||||
L11 L12 | ||||
"str1" "str2" | ||||
Figure 22: IGP Node in multiple flooding sets | NSSA 2 (0x6) | |||
The node N0 is a level 1-2 node. Link1 belongs to level 1 area L11, | 3.2.3.2. IP Reachability Information | |||
which has string "str1". Link2 belongs to level 1 area L12 which has | ||||
string "str2". N0 has both link1 and link2 in its LSDB. If BGP LS | ||||
speaker is running on N0, then N0 views itself as a collocation of | ||||
two nodes: N0(L11) and N0(L12) and originate <str1, N1, N0> and | ||||
<str2, N0, N2>. | ||||
To sum up, the mechanism works as follows: | The IP Reachability Information is a mandatory TLV that contains one | |||
IP address prefix (IPv4 or IPv6) originally advertised in the IGP | ||||
topology. Its purpose is to glue a particular BGP service NLRI vi | ||||
virtue of its BGP next-hop to a given Node in the LSDB. A router | ||||
SHOULD advertise an IP Prefix NLRI for each of its BGP Next-hops. | ||||
The format of the IP Reachability Information TLV is shown in the | ||||
following figure: | ||||
1. We use <Autonomous System, BGP Identifier> as the | 0 1 2 3 | |||
disambiguating string. | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Type | Length | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Prefix Length | IP Prefix (variable) // | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
2. By default, a BGP-LS speaker uses its own ASN, BGP identifier | Figure 14: IP Reachability Information TLV Format | |||
(router-id) for these fields for the NLRIs it originates. | ||||
3. Operator has the ability to configure other <ASN, BGP ID> per | The Type and Length fields of the TLV are defined in Table 4. The | |||
flooding set the IGP node underneath belongs to. In that case, | following two fields determine the address-family reachability | |||
the node descriptor(s) for a given NLRI uses the string | information. The 'Prefix Length' field contains the length of the | |||
corresponding to the flooding set where the node belongs. | prefix in bits. The 'IP Prefix' field contains the most significant | |||
octets of the prefix; i.e., 1 octet for prefix length 1 up to 8, 2 | ||||
octets for prefix length 9 to 16, 3 octets for prefix length 17 up to | ||||
24 and 4 octets for prefix length 25 up to 32, etc. | ||||
The operator needs to provide the configuration if there are multiple | 3.3. The LINK_STATE Attribute | |||
BGP-LS speakers running in the same flooding set. | ||||
3.2.2.5. Router-ID Anchoring Example: ISO Pseudonode | This is an optional, non-transitive BGP attribute that is used to | |||
carry link, node and prefix parameters and attributes. It is defined | ||||
as a set of Type/Length/Value (TLV) triplets, described in the | ||||
following section. This attribute SHOULD only be included with Link | ||||
State NLRIs. This attribute MUST be ignored for all other address- | ||||
families. | ||||
IS-IS Pseudonodes are a good example for the variable Router-ID | 3.3.1. Node Attribute TLVs | |||
anchoring. Consider Figure 23. This represents a Broadcast LAN | ||||
between a pair of routers. The "real" (=non pseudonode) routers have | ||||
both an IPv4 Router-ID and IS-IS Node-ID. The pseudonode does not | ||||
have an IPv4 Router-ID. Two unidirectional links (Node1, Pseudonode | ||||
1) and (Pseudonode 1, Node 2) are being generated. | ||||
The NRLI for (Node1, Pseudonode1) encodes local IPv4 router-ID, local | Node attribute TLVs are the TLVs that may be encoded in the BGP-LS | |||
ISO node-ID and remote ISO node-id) | attribute with a node NLRI. The following node attribute TLVs are | |||
defined: | ||||
The NLRI for (Pseudonode1, Node2) encodes a local ISO node-ID and | +--------------+-----------------------+----------+-----------------+ | |||
remote ISO node-id. | | TLV Code | Description | Length | Value defined | | |||
| Point | | | in: | | ||||
+--------------+-----------------------+----------+-----------------+ | ||||
| 263 | Multi-Topology | variable | Section 3.2.1.5 | | ||||
| | Identifier | | | | ||||
| 1024 | Node Flag Bits | 1 | Section 3.3.1.1 | | ||||
| 1025 | Opaque Node | variable | Section 3.3.1.5 | | ||||
| | Properties | | | | ||||
| 1026 | Node Name | variable | Section 3.3.1.3 | | ||||
| 1027 | IS-IS Area Identifier | variable | Section 3.3.1.2 | | ||||
| 1028 | IPv4 Router-ID of | 4 | [RFC5305]/4.3 | | ||||
| | Local Node | | | | ||||
| 1029 | IPv6 Router-ID of | 16 | [RFC6119]/4.1 | | ||||
| | Local Node | | | | ||||
+--------------+-----------------------+----------+-----------------+ | ||||
+-----------------+ +-----------------+ +-----------------+ | Table 5: Node Attribute TLVs | |||
| Node1 | | Pseudonode 1 | | Node2 | | ||||
|1920.0000.2001.00|--->|1920.0000.2001.02|--->|1920.0000.2002.00| | ||||
| 192.0.2.1 | | | | 192.0.2.2 | | ||||
+-----------------+ +-----------------+ +-----------------+ | ||||
Figure 23: IS-IS Pseudonodes | 3.3.1.1. Node Flag Bits TLV | |||
3.2.2.6. Router-ID Anchoring Example: OSPFv2 to IS-IS Migration | The Node Flag Bits TLV carries a bit mask describing node attributes. | |||
The value is a variable length bit array of flags, where each bit | ||||
represents a node capability. | ||||
Migrating gracefully from one IGP to another requires congruent | 0 1 2 3 | |||
operation of both routing protocols during the migration period. The | 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 | |||
target protocol (IS-IS) supports more router-ID spaces than the | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
source (OSPFv2) protocol. When advertising a point-to-point link | | Type | Length | | |||
between an OSPFv2-only router and an OSPFv2 and IS-IS enabled router | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
the following link information may be generated. Note that the IS-IS | |O|T|E|A| Reserved| | |||
router also supports the IPv6 traffic engineering extensions RFC 6119 | +-+-+-+-+-+-+-+-+-+ | |||
[RFC6119] for IS-IS. | Figure 15: Node Flag Bits TLV format | |||
The NRLI encodes local IPv4 router-id, remote IPv4 router-id, remote | The bits are defined as follows: | |||
ISO node-id and remote IPv6 node-id. | ||||
3.2.3. Link Descriptors | +----------+-------------------------+-----------+ | |||
| Bit | Description | Reference | | ||||
+----------+-------------------------+-----------+ | ||||
| 'O' | Overload Bit | [RFC1195] | | ||||
| 'T' | Attached Bit | [RFC1195] | | ||||
| 'E' | External Bit | [RFC2328] | | ||||
| 'A' | ABR Bit | [RFC2328] | | ||||
| Reserved | Reserved for future use | | | ||||
+----------+-------------------------+-----------+ | ||||
The 'Link Descriptor' field is a set of Type/Length/Value (TLV) | Table 6: Node Flag Bits Definitions | |||
triplets. The format of each TLV is shown in Section 3.1. The 'Link | ||||
descriptor' TLVs uniquely identify a link between a pair of anchor | ||||
Routers. A link described by the Link descriptor TLVs actually is a | ||||
"half-link", a unidirectional representation of a logical link. In | ||||
order to fully describe a single logical link two originating routers | ||||
need to advertise a half-link each, i.e. two link NLRIs will be | ||||
advertised. | ||||
The format and semantics of the 'value' fields in most 'Link | 3.3.1.2. IS-IS Area Identifier TLV | |||
Descriptor' TLVs correspond to the format and semantics of value | ||||
fields in IS-IS Extended IS Reachability sub-TLVs, defined in | ||||
[RFC5305], [RFC5307] and [RFC6119]. Although the encodings for 'Link | ||||
Descriptor' TLVs were originally defined for IS-IS, the TLVs can | ||||
carry data sourced either by IS-IS or OSPF. | ||||
The following link descriptor TLVs are valid in the Link NLRI: | An IS-IS node can be part of one or more IS-IS areas. Each of these | |||
area addresses is carried in the IS-IS Area Identifier TLV. If more | ||||
than one Area Addresses are present, multiple TLVs are used to encode | ||||
them. The IS-IS Area Identifier TLV may be present in the LINK_STATE | ||||
attribute only with the Link State Node NLRI. | ||||
+------------+--------------------+---------------+-----------------+ | 0 1 2 3 | |||
| TLV/SubTLV | Description | IS-IS | Value defined | | 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 | |||
| | | TLV/Sub-TLV | in: | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
+------------+--------------------+---------------+-----------------+ | | Type | Length | | |||
| 264 | Link Local/Remote | 22/4 | [RFC5307]/1.1 | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Identifiers | | | | // Area Identifier (variable) // | |||
| 265 | IPv4 interface | 22/6 | [RFC5305]/3.2 | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | address | | | | ||||
| 266 | IPv4 neighbor | 22/8 | [RFC5305]/3.3 | | ||||
| | address | | | | ||||
| 267 | IPv6 interface | 22/12 | [RFC6119]/4.2 | | ||||
| | address | | | | ||||
| 268 | IPv6 neighbor | 22/13 | [RFC6119]/4.3 | | ||||
| | address | | | | ||||
| 256/5 | Multi Topology ID | --- | Section 3.2.1.5 | | ||||
+------------+--------------------+---------------+-----------------+ | ||||
Table 2: Link Descriptor TLVs | Figure 16: IS-IS Area Identifier TLV Format | |||
3.2.4. Prefix Descriptors | 3.3.1.3. Node Name TLV | |||
The 'Prefix descriptor' TLVs uniquely identify a Prefix (IPv4 or | The Node Name TLV is optional. Its structure and encoding has been | |||
IPv6) originated by a Node. | borrowed from [RFC5301]. The value field identifies the symbolic | |||
name of the router node. This symbolic name can be the FQDN for the | ||||
router, it can be a subset of the FQDN, or it can be any string | ||||
operators want to use for the router. The use of FQDN or a subset of | ||||
it is strongly recommended. | ||||
The following Prefix descriptor TLVs are valid in the IPv4/IPv6 | The Value field is encoded in 7-bit ASCII. If a user-interface for | |||
Prefix NLRI: | configuring or displaying this field permits Unicode characters, that | |||
user-interface is responsible for applying the ToASCII and/or | ||||
ToUnicode algorithm as described in [RFC3490] to achieve the correct | ||||
format for transmission or display. | ||||
+------------+-----------------+-----------------+------------------+ | Altough [RFC5301] is a IS-IS specific extension, usage of the Node | |||
| TLV/SubTLV | Description | IS-IS | Value defined | | Name TLV is possible for all protocols. How a router derives and | |||
| | | TLV/Sub-TLV | in: | | injects node names for e.g. OSPF nodes, is outside of the scope of | |||
+------------+-----------------+-----------------+------------------+ | this document. | |||
| 256/5 | Multi Topology | --- | Section 3.2.1.5 | | ||||
| | ID | | | | ||||
+------------+-----------------+-----------------+------------------+ | ||||
Table 3: Prefix Descriptor TLVs | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Type | Length | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
// Node Name (variable) // | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
3.2.4.1. The Prefix NLRI | Figure 17: Node Name format | |||
The Prefix NLRI is a variable length field that contains one or more | 3.3.1.4. Local IPv4/IPv6 Router-ID | |||
IP address prefixes (IPv4 or IPv6) originally advertised in the IGP | ||||
topology. The NLRI Type determines the address-family. Reachability | ||||
information is encoded as one or more 2-tuples of the form <length, | ||||
prefix>, whose fields are described below: | ||||
+---------------------------+ | The local IPv4/IPv6 Router-ID TLVs are used to describe auxiliary | |||
| Length (1 octet) | | Router-IDs that the IGP might be using, e.g., for TE and migration | |||
+---------------------------+ | purposes like correlating a Node-ID between different protocols. If | |||
| Prefix (variable) | | there is more than one auxiliary Router-ID of a given type, then each | |||
+---------------------------+ | one is encoded in its own TLV. | |||
Figure 24: Prefix NLRI format | 3.3.1.5. Opaque Node Attribute TLV | |||
The 'Length' field contains the length of the prefix in bits. Only | The Opaque Node attribute TLV is an envelope that transparently | |||
the most significant octets of the prefix are encoded. I.e. 1 octet | carries optional node attribute TLVs advertised by a router. An | |||
for prefix length 1 up to 8, 2 octets for prefix length 9 to 16, 3 | originating router shall use this TLV for encoding information | |||
octets for prefix length 17 up to 24 and 4 octets for prefix length | specific to the protocol advertised in the NLRI header Protocol-ID | |||
25 up to 32, etc. | field or new protocol extensions to the protocol as advertised in the | |||
NLRI header Protocol-ID field for which there is no protocol neutral | ||||
representation in the BGP link-state NLRI. A router for example | ||||
could use this extension in order to advertise the native protocols | ||||
node attribute TLVs, such as the OSPF Router Informational | ||||
Capabilities TLV defined in [RFC4970], or the IGP TE Node Capability | ||||
Descriptor TLV described in [RFC5073]. | ||||
3.3. The LINK_STATE Attribute | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Type | Length | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
// Opaque node attributes (variable) // | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
This is an optional, non-transitive BGP attribute that is used to | Figure 18: Opaque Node attribute format | |||
carry link, node and prefix parameters and attributes. It is defined | ||||
as a set of Type/Length/Value (TLV) triplets, described in the | ||||
following section. This attribute SHOULD only be included with Link | ||||
State NLRIs. This attribute MUST be ignored for all other NLRIs. | ||||
3.3.1. Link Attribute TLVs | 3.3.2. Link Attribute TLVs | |||
Each 'Link Attribute' is a Type/Length/Value (TLV) triplet formatted | Link attribute TLVs are TLVs that may be encoded in the BGP-LS | |||
as defined in Section 3.1. The format and semantics of the 'value' | attribute with a link NLRI. Each 'Link Attribute' is a Type/Length/ | |||
fields in some 'Link Attribute' TLVs correspond to the format and | Value (TLV) triplet formatted as defined in Section 3.1. The format | |||
semantics of value fields in IS-IS Extended IS Reachability sub-TLVs, | and semantics of the 'value' fields in some 'Link Attribute' TLVs | |||
defined in [RFC5305] and [RFC5307]. Other 'Link Attribute' TLVs are | correspond to the format and semantics of value fields in IS-IS | |||
defined in this document. Although the encodings for 'Link | Extended IS Reachability sub-TLVs, defined in [RFC5305] and | |||
Attribute' TLVs were originally defined for IS-IS, the TLVs can carry | [RFC5307]. Other 'Link Attribute' TLVs are defined in this document. | |||
data sourced either by IS-IS or OSPF. | Although the encodings for 'Link Attribute' TLVs were originally | |||
defined for IS-IS, the TLVs can carry data sourced either by IS-IS or | ||||
OSPF. | ||||
The following 'Link Attribute' TLVs are are valid in the LINK_STATE | The following 'Link Attribute' TLVs are are valid in the LINK_STATE | |||
attribute: | attribute: | |||
+------------+---------------------+--------------+-----------------+ | +------------+---------------------+--------------+-----------------+ | |||
| TLV/SubTLV | Description | IS-IS | Defined in: | | | TLV Code | Description | IS-IS | Defined in: | | |||
| | | TLV/Sub-TLV | | | | Point | | TLV/Sub-TLV | | | |||
+------------+---------------------+--------------+-----------------+ | +------------+---------------------+--------------+-----------------+ | |||
| 256/3 | Area Identifier | --- | Section 3.2.1.3 | | | 1028 | IPv4 Router-ID of | 134/--- | [RFC5305]/4.3 | | |||
| 269 | Administrative | 22/3 | [RFC5305]/3.1 | | | | Local Node | | | | |||
| 1029 | IPv6 Router-ID of | 140/--- | [RFC6119]/4.1 | | ||||
| | Local Node | | | | ||||
| 1030 | IPv4 Router-ID of | 134/--- | [RFC5305]/4.3 | | ||||
| | Remote Node | | | | ||||
| 1031 | IPv6 Router-ID of | 140/--- | [RFC6119]/4.1 | | ||||
| | Remote Node | | | | ||||
| 1088 | Administrative | 22/3 | [RFC5305]/3.1 | | ||||
| | group (color) | | | | | | group (color) | | | | |||
| 270 | Maximum link | 22/9 | [RFC5305]/3.3 | | | 1089 | Maximum link | 22/9 | [RFC5305]/3.3 | | |||
| | bandwidth | | | | | | bandwidth | | | | |||
| 271 | Max. reservable | 22/10 | [RFC5305]/3.5 | | | 1090 | Max. reservable | 22/10 | [RFC5305]/3.5 | | |||
| | link bandwidth | | | | | | link bandwidth | | | | |||
| 272 | Unreserved | 22/11 | [RFC5305]/3.6 | | | 1091 | Unreserved | 22/11 | [RFC5305]/3.6 | | |||
| | bandwidth | | | | | | bandwidth | | | | |||
| 273 | TE Default Metric | 22/18 | [RFC5305]/3.7 | | | 1092 | TE Default Metric | 22/18 | [RFC5305]/3.7 | | |||
| 274 | Link Protection | 22/20 | [RFC5307]/1.2 | | | 1093 | Link Protection | 22/20 | [RFC5307]/1.2 | | |||
| | Type | | | | | | Type | | | | |||
| 275 | MPLS Protocol Mask | --- | Section 3.3.1.1 | | | 1094 | MPLS Protocol Mask | --- | Section 3.3.2.2 | | |||
| 276 | Metric | --- | Section 3.3.1.2 | | | 1095 | Metric | --- | Section 3.3.2.3 | | |||
| 277 | Shared Risk Link | --- | Section 3.3.1.3 | | | 1096 | Shared Risk Link | --- | Section 3.3.2.4 | | |||
| | Group | | | | | | Group | | | | |||
| 278 | OSPF specific link | --- | Section 3.3.1.4 | | | 1097 | Opaque link | --- | Section 3.3.2.5 | | |||
| | attribute | | | | | | attribute | | | | |||
| 279 | IS-IS Specific Link | --- | Section 3.3.1.5 | | | 1098 | Link Name attribute | --- | Section 3.3.2.6 | | |||
| | Attribute | | | | ||||
+------------+---------------------+--------------+-----------------+ | +------------+---------------------+--------------+-----------------+ | |||
Table 4: Link Attribute TLVs | Table 7: Link Attribute TLVs | |||
3.3.1.1. MPLS Protocol Mask TLV | 3.3.2.1. IPv4/IPv6 Router-ID | |||
The MPLS Protocol TLV (Type 275) carries a bit mask describing which | The local/remote IPv4/IPv6 Router-ID TLVs are used to describe | |||
MPLS signaling protocols are enabled. The length of this TLV is 1. | auxiliary Router-IDs that the IGP might be using, e.g., for TE | |||
The value is a bit array of 8 flags, where each bit represents an | purposes. All auxiliary Router-IDs of both the local and the remote | |||
MPLS Protocol capability. | node MUST be included in the link attribute of each link NLRI. If | |||
there are more than one auxiliary Router-ID of a given type, then | ||||
multiple TLVs are used to encode them. | ||||
3.3.2.2. MPLS Protocol Mask TLV | ||||
The MPLS Protocol TLV carries a bit mask describing which MPLS | ||||
signaling protocols are enabled. The length of this TLV is 1. The | ||||
value is a bit array of 8 flags, where each bit represents an MPLS | ||||
Protocol capability. | ||||
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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|L R | | |L|R| Reserved | | |||
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
Figure 25: MPLS Protocol TLV | Figure 19: MPLS Protocol TLV | |||
The following bits are defined: | The following bits are defined: | |||
+-----+---------------------------------------------+-----------+ | +------------+------------------------------------------+-----------+ | |||
| Bit | Description | Reference | | | Bit | Description | Reference | | |||
+-----+---------------------------------------------+-----------+ | +------------+------------------------------------------+-----------+ | |||
| 0 | Label Distribution Protocol (LDP) | [RFC5036] | | | 'L' | Label Distribution Protocol (LDP) | [RFC5036] | | |||
| 1 | Extension to RSVP for LSP Tunnels (RSVP-TE) | [RFC3209] | | | 'R' | Extension to RSVP for LSP Tunnels | [RFC3209] | | |||
| 2-7 | Reserved for future use | | | | | (RSVP-TE) | | | |||
+-----+---------------------------------------------+-----------+ | | 'Reserved' | Reserved for future use | | | |||
+------------+------------------------------------------+-----------+ | ||||
Table 5: MPLS Protocol Mask TLV Codes | Table 8: MPLS Protocol Mask TLV Codes | |||
3.3.1.2. Metric TLV | 3.3.2.3. Metric TLV | |||
The IGP Metric TLV (Type 276) carries the metric for this link. The | The IGP Metric TLV carries the metric for this link. The length of | |||
length of this TLV is 3. If the length of the metric from which the | this TLV is variable, depending on the metric width of the underlying | |||
IGP Metric value is derived is less than 3 (e.g. for OSPF link | protocol. IS-IS small metrics have a length of 1 octet (the two most | |||
metrics or non-wide IS-IS metric), then the upper bits of the TLV are | significant bits are ignored). OSPF metrics have a length of two | |||
set to 0. | octects. IS-IS wide-metrics have a length of three octets. | |||
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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| IGP Link Metric | | // IGP Link Metric (variable length) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 26: Metric TLV format | Figure 20: Metric TLV format | |||
3.3.1.3. Shared Risk Link Group TLV | 3.3.2.4. Shared Risk Link Group TLV | |||
The Shared Risk Link Group (SRLG) TLV (Type 277) carries the Shared | The Shared Risk Link Group (SRLG) TLV carries the Shared Risk Link | |||
Risk Link Group information (see Section 2.3, "Shared Risk Link Group | Group information (see Section 2.3, "Shared Risk Link Group | |||
Information", of [RFC4202]). It contains a data structure consisting | Information", of [RFC4202]). It contains a data structure consisting | |||
of a (variable) list of SRLG values, where each element in the list | of a (variable) list of SRLG values, where each element in the list | |||
has 4 octets, as shown in Figure 27. The length of this TLV is 4 * | has 4 octets, as shown in Figure 21. The length of this TLV is 4 * | |||
(number of SRLG values). | (number of SRLG values). | |||
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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Shared Risk Link Group Value | | | Shared Risk Link Group Value | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ............ | | // ............ // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Shared Risk Link Group Value | | | Shared Risk Link Group Value | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 27: Shared Risk Link Group TLV format | Figure 21: Shared Risk Link Group TLV format | |||
Note that there is no SRLG TLV in OSPF-TE. In IS-IS the SRLG | Note that there is no SRLG TLV in OSPF-TE. In IS-IS the SRLG | |||
information is carried in two different TLVs: the IPv4 (SRLG) TLV | information is carried in two different TLVs: the IPv4 (SRLG) TLV | |||
(Type 138) defined in [RFC5307], and the IPv6 SRLG TLV (Type 139) | (Type 138) defined in [RFC5307], and the IPv6 SRLG TLV (Type 139) | |||
defined in [RFC6119]. Since the Link State NLRI uses variable | defined in [RFC6119]. In Link State NLRI both IPv4 and IPv6 SRLG | |||
Router-ID anchoring, both IPv4 and IPv6 SRLG information can be | information are carried in a single TLV. | |||
carried in a single TLV. | ||||
3.3.1.4. OSPF Specific Link Attribute TLV | ||||
The OSPF specific link attribute TLV (Type 278) is an envelope that | ||||
transparently carries optional link properties TLVs advertised by an | ||||
OSPF router. The value field contains one or more optional OSPF link | ||||
attribute TLVs. An originating router shall use this TLV for | ||||
encoding information specific to the OSPF protocol or new OSPF | ||||
extensions for which there is no protocol neutral representation in | ||||
the BGP link-state NLRI. | ||||
0 1 2 3 | ||||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Type | Length | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | | ||||
| OSPF specific link attributes (variable) | | ||||
| | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
Figure 28: OSPF specific link attribute format | ||||
3.3.1.5. IS-IS specific link attribute TLV | ||||
The IS-IS specific link attribute TLV (Type 279) is an envelope that | ||||
transparently carries optional link properties TLVs advertised by an | ||||
IS-IS router. The value field contains one or more optional IS-IS | ||||
link attribute TLVs. An originating router shall use this TLV for | ||||
encoding information specific to the IS-IS protocol or new IS-IS | ||||
extensions for which there is no protocol neutral representation in | ||||
the BGP link-state NLRI. | ||||
0 1 2 3 | ||||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Type | Length | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | | ||||
| IS-IS specific link attributes (variable) | | ||||
| | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
Figure 29: IS-IS specific link attribute format | ||||
3.3.1.6. IS-IS Area Address attribute TLV | ||||
The area address is carried in the Area Identifier SubTLV of the | ||||
Identifier TLV and consists of the Area Address which is assigned to | ||||
the link. If more than one Area Addresses are present, only the | ||||
lower address is encoded. Note that the Area Identifier SubTLV may | ||||
appear in all NLRI types (Link, Node and Prefix) and is defined in | ||||
Section 3.2.1.3. | ||||
3.3.2. Node Attribute TLVs | ||||
The following node attribute TLVs are defined: | ||||
+------------+--------------------------------------+----------+ | ||||
| TLV/SubTLV | Description | Length | | ||||
+------------+--------------------------------------+----------+ | ||||
| 256/5 | Multi Topology | 2 | | ||||
| 280 | Node Flag Bits | 1 | | ||||
| 281 | OSPF Specific Node Properties | variable | | ||||
| 282 | IS-IS Specific Node Properties | variable | | ||||
| 256 | IS-IS Area Address/Domain Identifier | variable | | ||||
+------------+--------------------------------------+----------+ | ||||
Table 6: Node Attribute TLVs | ||||
3.3.2.1. Node Multi Topology ID | ||||
The Node Multi Topology ID is carried in the Multi Topolofy ID SubTLV | ||||
(type 5) of Identifier ID TLV TLV (Type 256) and carries the Multi | ||||
Topology ID and topology specific flags for this node. The format | ||||
and semantics of the 'value' field in the Multi Topology TLV is | ||||
defined in Section 3.2.1.5. If the value in the Multi Topology TLV | ||||
is derived from OSPF, then the upper 9 bits of the Multi Topology ID | ||||
and the 'O' and 'A' bits are set to 0. | ||||
3.3.2.2. Node Flag Bits TLV | 3.3.2.5. Opaque Link Attribute TLV | |||
The Node Flag Bits TLV (Type 280) carries a bit mask describing node | The Opaque link attribute TLV is an envelope that transparently | |||
attributes. The value is a variable length bit array of flags, where | carries optional link atrribute TLVs advertised by a router. An | |||
each bit represents a node capability. | originating router shall use this TLV for encoding information | |||
specific to the protocol advertised in the NLRI header Protocol-ID | ||||
field or new protocol extensions to the protocol as advertised in the | ||||
NLRI header Protocol-ID field for which there is no protocol neutral | ||||
representation in the BGP link-state NLRI. | ||||
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) | | // Opaque link attributes (variable) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 30: Node Flag Bits TLV format | Figure 22: Opaque link attribute format | |||
The bits are defined as follows: | ||||
+-----+--------------+-----------+ | ||||
| Bit | Description | Reference | | ||||
+-----+--------------+-----------+ | ||||
| 0 | Overload Bit | [RFC1195] | | ||||
| 1 | Attached Bit | [RFC1195] | | ||||
| 2 | External Bit | [RFC2328] | | ||||
| 3 | ABR Bit | [RFC2328] | | ||||
+-----+--------------+-----------+ | ||||
Table 7: Node Flag Bits Definitions | ||||
3.3.2.3. OSPF Specific Node Properties TLV | ||||
The OSPF Specific Node Properties TLV (Type 281) is an envelope that | ||||
transparently carries optional node properties TLVs advertised by an | ||||
OSPF router. The value field contains one or more optional OSPF node | ||||
property TLVs, such as the OSPF Router Informational Capabilities TLV | ||||
defined in [RFC4970], or the OSPF TE Node Capability Descriptor TLV | ||||
described in [RFC5073]. An originating router shall use this TLV for | ||||
encoding information specific to the OSPF protocol or new OSPF | ||||
extensions for which there is no protocol neutral representation in | ||||
the BGP link-state NLRI. | ||||
0 1 2 3 | 3.3.2.6. Link Name TLV | |||
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 | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | | ||||
| OSPF specific node properties (variable) | | ||||
| | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
Figure 31: OSPF specific Node property format | The Link Name TLV is optional. The value field identifies the | |||
symbolic name of the router link. This symbolic name can be the FQDN | ||||
for the link, it can be a subset of the FQDN, or it can be any string | ||||
operators want to use for the link. The use of FQDN or a subset of | ||||
it is strongly recommended. | ||||
3.3.2.4. IS-IS Specific Node Properties TLV | The Value field is encoded in 7-bit ASCII. If a user-interface for | |||
configuring or displaying this field permits Unicode characters, that | ||||
user-interface is responsible for applying the ToASCII and/or | ||||
ToUnicode algorithm as described in [RFC3490] to achieve the correct | ||||
format for transmission or display. | ||||
The IS-IS Router Specific Node Properties TLV (Type 282) is an | How a router derives and injects link names is outside of the scope | |||
envelope that transparently carries optional node specific TLVs | of this document. | |||
advertised by an IS-IS router. The value field contains one or more | ||||
optional IS-IS node property TLVs, such as the IS-IS TE Node | ||||
Capability Descriptor TLV described in [RFC5073]. An originating | ||||
router shall use this TLV for encoding information specific to the | ||||
IS-IS protocol or new IS-IS extensions for which there is no protocol | ||||
neutral representation in the BGP link-state NLRI. | ||||
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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | // Link Name (variable) // | |||
| IS-IS specific node properties (variable) | | ||||
| | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 32: IS-IS specific Node property format | Figure 23: Link Name format | |||
3.3.2.5. ISIS Area Address TLV | ||||
The area address is carried in the Area Identifier SubTLV of the | ||||
Identifier TLV and consists of the Area Address which is assigned to | ||||
the node. If more than one Area Addresses are present, only the | ||||
lower address is encoded. Note that the Area Identifier SubTLV may | ||||
appear in all NLRI types (Link, Node and Prefix) and is defined in | ||||
Section 3.2.1.3. | ||||
3.3.3. Prefix Attributes TLVs | 3.3.3. Prefix Attribute TLVs | |||
Prefixes are learned from the IGP topology (ISIS or OSPF) with a set | Prefixes are learned from the IGP topology (IS-IS or OSPF) with a set | |||
of IGP attributes (such as metric, route tags, etc.) that MUST be | of IGP attributes (such as metric, route tags, etc.) that MUST be | |||
reflected into the LINK_STATE attribute. This section describes the | reflected into the LINK_STATE attribute. This section describes the | |||
different attributes related to the IPv4/IPv6 prefixes. Prefix | different attributes related to the IPv4/IPv6 prefixes. Prefix | |||
Attributes TLVs SHOULD be used when advertising NLRI types 3 and 4 | Attributes TLVs SHOULD be used when advertising NLRI types 3 and 4 | |||
only. The following attributes TLVs are defined: | only. The following attributes TLVs are defined: | |||
+-------------------------+-------------+-----------+-----------+ | +---------------+----------------------+----------+-----------------+ | |||
| TLV/SubTLV | Description | Length | Reference | | | TLV Code | Description | Length | Reference | | |||
+-------------------------+-------------+-----------+-----------+ | | Point | | | | | |||
| 283 | IGP Flags | 4 | 284 | | +---------------+----------------------+----------+-----------------+ | |||
| Route Tag | 4*n | [RFC5130] | 285 | | | 1152 | IGP Flags | 1 | Section 3.3.3.1 | | |||
| Extended Tag | 8*n | [RFC5130] | 286 | | | 1153 | Route Tag | 4*n | Section 3.3.3.2 | | |||
| Prefix Metric | 4 | [RFC5305] | 287 | | | 1154 | Extended Tag | 8*n | Section 3.3.3.3 | | |||
| OSPF Forwarding Address | 4 | [RFC2328] | | | | 1155 | Prefix Metric | 4 | Section 3.3.3.4 | | |||
+-------------------------+-------------+-----------+-----------+ | | 1156 | OSPF Forwarding | 4 | Section 3.3.3.5 | | |||
| | Address | | | | ||||
| 1157 | Opaque Prefix | variable | Section 3.3.3.6 | | ||||
| | Attribute | | | | ||||
+---------------+----------------------+----------+-----------------+ | ||||
Table 8: Prefix Attribute TLVs | Table 9: Prefix Attribute TLVs | |||
3.3.3.1. IGP Flags TLV | 3.3.3.1. IGP Flags TLV | |||
IGP Flags TLV contains ISIS and OSPF flags and bits originally | IGP Flags TLV contains IS-IS and OSPF flags and bits originally | |||
assigned to the prefix. The IGP Flags TLV is encoded as follows: | assigned to the prefix. The IGP Flags TLV is encoded 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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| IGP Flags (variable) | | |D| Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
Figure 33: IGP Flag TLV format | ||||
where: | ||||
Type is 283 | ||||
Length is variable | Figure 24: IGP Flag TLV format | |||
The following bits are defined according to the table here below: | The value field contains bits defined according to the table below: | |||
+------+------------------+-----------+ | +----------+--------------------------+-----------+ | |||
| Bit | Description | Reference | | | Bit | Description | Reference | | |||
+------+------------------+-----------+ | +----------+--------------------------+-----------+ | |||
| 0 | ISIS Up/Down Bit | [RFC5305] | | | 'D' | IS-IS Up/Down Bit | [RFC5305] | | |||
| 1-3 | OSPF Route Type | [RFC2328] | | | Reserved | Reserved for future use. | | | |||
| 4-15 | RESERVED | | | +----------+--------------------------+-----------+ | |||
+------+------------------+-----------+ | ||||
Table 9: IGP Flag Bits Definitions | ||||
OSPF Route Type can be either: Intra-Area (0x1), Inter-Area (0x2), | Table 10: IGP Flag Bits Definitions | |||
External 1 (0x3), External 2 (0x4), NSSA (0x5) and is encoded in a 3 | ||||
bits number. For prefixes learned from IS-IS, this field MUST to be | ||||
set to 0x0 on transmission. | ||||
3.3.3.2. Route Tag | 3.3.3.2. Route Tag | |||
Route Tag TLV carries the original IGP TAG (ISIS or OSPF) of the | Route Tag TLV carries original IGP TAGs (IS-IS [RFC5130] or OSPF) of | |||
prefix and is encoded as follows: | the prefix and is encoded 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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Route Tags (one or more) | | // Route Tags (one or more) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 34: IGP Route TAG TLV format | Figure 25: IGP Route TAG TLV format | |||
where: | ||||
Type is 284 | ||||
Length is a multiple of 4 | Length is a multiple of 4. | |||
One or more Route Tags as learned in the IGP topology. | The value field contains one or more Route Tags as learned in the IGP | |||
topology. | ||||
3.3.3.3. Extended Route Tag | 3.3.3.3. Extended Route Tag | |||
Extended Route Tag TLV carries the ISIS Extended Route TAG of the | Extended Route Tag TLV carries IS-IS Extended Route TAGs of the | |||
prefix and is encoded as follows: | prefix [RFC5130] and is encoded 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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Extended Route Tag (one or more) | | // Extended Route Tag (one or more) // | |||
| | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 35: Extended IGP Route TAG TLV format | Figure 26: Extended IGP Route TAG TLV format | |||
where: | ||||
Type is 285 | ||||
Length is a multiple of 8 | Length is a multiple of 8. | |||
Extended Route Tag contains one or more Extended Route Tags as | The 'Extended Route Tag' field contains one or more Extended Route | |||
learned in the IGP topology. | Tags as learned in the IGP topology. | |||
3.3.3.4. Prefix Metric TLV | 3.3.3.4. Prefix Metric TLV | |||
Prefix Metric TLV carries the metric of the prefix as known in the | Prefix Metric TLV carries the metric of the prefix as known in the | |||
IGP topology. The attribute is mandatory and can only appear once. | IGP topology [RFC5305]. The attribute is mandatory and can only | |||
appear once. | ||||
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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Metric | | | Metric | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 36: Prefix Metric TLV Format | Figure 27: Prefix Metric TLV Format | |||
where: | ||||
Type is 286 | ||||
Length is 4 | Length is 4. | |||
3.3.3.5. OSPF Forwarding Address TLV | 3.3.3.5. OSPF Forwarding Address TLV | |||
OSPF Forwarding Address TLV carries the OSPF forwarding address as | OSPF Forwarding Address TLV [RFC2328] carries the OSPF forwarding | |||
known in the original OSPF advertisement. Forwarding address can be | address as known in the original OSPF advertisement. Forwarding | |||
either IPv4 or IPv6. | address can be either IPv4 or IPv6. | |||
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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Forwarding Address (variable) | | // Forwarding Address (variable) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 37: OSPF Forwarding Address TLV Format | Figure 28: OSPF Forwarding Address TLV Format | |||
where: | ||||
Type is 287 | ||||
Length is 4 for an IPv4 forwarding address an 16 for an IPv6 | Length is 4 for an IPv4 forwarding address an 16 for an IPv6 | |||
forwarding address | forwarding address. | |||
3.3.3.6. Opaque Prefix Attribute TLV | ||||
The Opaque Prefix attribute TLV is an envelope that transparently | ||||
carries optional prefix attribute TLVs advertised by a router. An | ||||
originating router shall use this TLV for encoding information | ||||
specific to the protocol advertised in the NLRI header Protocol-ID | ||||
field or new protocol extensions to the protocol as advertised in the | ||||
NLRI header Protocol-ID field for which there is no protocol neutral | ||||
representation in the BGP link-state NLRI. | ||||
The format of the TLV is as follows: | ||||
0 1 2 3 | ||||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Type | Length | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
// Opaque Prefix Attributes (variable) // | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
Figure 29: Opaque Prefix Attribute TLV Format | ||||
Type is as specified in Table 9 and Length is variable. | ||||
3.4. BGP Next Hop Information | 3.4. BGP Next Hop Information | |||
BGP link-state information for both IPv4 and IPv6 networks can be | BGP link-state information for both IPv4 and IPv6 networks can be | |||
carried over either an IPv4 BGP session, or an IPv6 BGP session. If | carried over either an IPv4 BGP session, or an IPv6 BGP session. If | |||
IPv4 BGP session is used, then the next hop in the MP_REACH_NLRI | IPv4 BGP session is used, then the next hop in the MP_REACH_NLRI | |||
SHOULD be an IPv4 address. Similarly, if IPv6 BGP session is used, | SHOULD be an IPv4 address. Similarly, if IPv6 BGP session is used, | |||
then the next hop in the MP_REACH_NLRI SHOULD be an IPv6 address. | then the next hop in the MP_REACH_NLRI SHOULD be an IPv6 address. | |||
Usually the next hop will be set to the local end-point address of | Usually the next hop will be set to the local end-point address of | |||
the BGP session. The next hop address MUST be encoded as described | the BGP session. The next hop address MUST be encoded as described | |||
in [RFC4760]. The length field of the next hop address will specify | in [RFC4760]. The length field of the next hop address will specify | |||
the next hop address-family. If the next hop length is 4, then the | the next hop address-family. If the next hop length is 4, then the | |||
next hop is an IPv4 address; if the next hop length is 16, then it is | next hop is an IPv4 address; if the next hop length is 16, then it is | |||
a global IPv6 address and if the next hop length is 32, then there is | a global IPv6 address and if the next hop length is 32, then there is | |||
one global IPv6 address followed by a link-local IPv6 address. The | one global IPv6 address followed by a link-local IPv6 address. The | |||
link-local IPv6 address should be used as described in [RFC2545]. | link-local IPv6 address should be used as described in [RFC2545]. | |||
For VPN SAFI, as per custom, an 8 byte route-distinguisher set to all | ||||
zero is prepended to the next hop. | ||||
The BGP Next Hop attribute is used by each BGP-LS spaker to validate | The BGP Next Hop attribute is used by each BGP-LS speaker to validate | |||
the NLRI it receives. However, this specification doesn't mandate | the NLRI it receives. However, this specification doesn't mandate | |||
any rule regarding the re-write of the BGP Next Hop attribute. | any rule regarding the re-write of the BGP Next Hop attribute. | |||
3.5. Inter-AS Links | 3.5. Inter-AS Links | |||
The main source of TE information is the IGP, which is not active on | The main source of TE information is the IGP, which is not active on | |||
inter-AS links. In order to inject a non-IGP enabled link into the | inter-AS links. In some cases, the IGP may have information of | |||
BGP link-state RIB an implementation must support configuration of | inter-AS links ([RFC5392], [RFC5316]). In other cases, for injecting | |||
static links. | a non-IGP enabled link into the BGP link-state RIB, an implementation | |||
MUST support configuration of either 'Static' or 'Direct' links. | ||||
3.6. Router-ID Anchoring Example: ISO Pseudonode | ||||
Encoding of a broadcast LAN in IS-IS provides a good example of how | ||||
Router-IDs are encoded. Consider Figure 30. This represents a | ||||
Broadcast LAN between a pair of routers. The "real" (=non | ||||
pseudonode) routers have both an IPv4 Router-ID and IS-IS Node-ID. | ||||
The pseudonode does not have an IPv4 Router-ID. Node1 is the DIS for | ||||
the LAN. Two unidirectional links (Node1, Pseudonode 1) and | ||||
(Pseudonode1, Node2) are being generated. | ||||
The link NRLI of (Node1, Pseudonode1) is encoded as follows: the IGP | ||||
Router-ID TLV of the local node descriptor is 6 octets long | ||||
containing ISO-ID of Node1, 1920.0000.2001; the IGP Router-ID TLV of | ||||
the remote node descriptor is 7 octets long containing the ISO-ID of | ||||
Pseudonode1, 1920.0000.2001.02. The BGP-LS attribute of this link | ||||
contains one local IPv4 Router-ID TLV (TLV type 1028) containing | ||||
192.0.2.1, the IPv4 Router-ID of Node1. | ||||
The link NRLI of (Pseudonode1. Node2) is encoded as follows: the IGP | ||||
Router-ID TLV of the local node descriptor is 7 octets long | ||||
containing the ISO-ID of Pseudonode1, 1920.0000.2001.02; the IGP | ||||
Router-ID TLV of the remote node descriptor is 6 octets long | ||||
containing ISO-ID of Node2, 1920.0000.2002. The BGP-LS attribute of | ||||
this link contains one remote IPv4 Router-ID TLV (TLV type 1030) | ||||
containing 192.0.2.2, the IPv4 Router-ID of Node2. | ||||
+-----------------+ +-----------------+ +-----------------+ | ||||
| Node1 | | Pseudonode1 | | Node2 | | ||||
|1920.0000.2001.00|--->|1920.0000.2001.02|--->|1920.0000.2002.00| | ||||
| 192.0.2.1 | | | | 192.0.2.2 | | ||||
+-----------------+ +-----------------+ +-----------------+ | ||||
Figure 30: IS-IS Pseudonodes | ||||
3.7. Router-ID Anchoring Example: OSPFv2 to IS-IS Migration | ||||
Graceful migration from one IGP to another requires coordinated | ||||
operation of both protocols during the migration period. Such a | ||||
coordination requires identifying a given physical link in both IGPs. | ||||
The IPv4 Router-ID provides that "glue" which is present in the node | ||||
descriptors of the OSPF link NLRI and in the link attribute of the | ||||
IS-IS link NLRI. | ||||
Consider a point-to-point link between two routers, A and B, that | ||||
initially were OSPFv2-only routers and then IS-IS is enabled on them. | ||||
Node A has IPv4 Router-ID and ISO-ID; node B has IPv4 Router-ID, IPv6 | ||||
Router-ID and ISO-ID. Each protocol generates one link NLRI for the | ||||
link (A, B), both of which are carried by BGP-LS. The OSPFv2 link | ||||
NLRI for the link is encoded with the IPv4 Router-ID of nodes A and B | ||||
in the local and remote node descriptors, respectively. The IS-IS | ||||
link NLRI for the link is encoded with the ISO-ID of nodes A and B in | ||||
the local and remote node descriptors, respectively. In addition, | ||||
the BGP-LS attribute of the IS-IS link NLRI contains the the TLV type | ||||
1028 containing the IPv4 Router-ID of node A; TLV type 1030 | ||||
containing the IPv4 Router-ID of node B and TLV type 1031 containing | ||||
the IPv6 Router-ID of node B. In this case, by using IPv4 Router-ID, | ||||
the link (A, B) can be identified in both IS-IS and OSPF protocol. | ||||
4. Link to Path Aggregation | 4. Link to Path Aggregation | |||
Distribution of all links available in the global Internet is | Distribution of all links available in the global Internet is | |||
certainly possible, however not desirable from a scaling and privacy | certainly possible, however not desirable from a scaling and privacy | |||
point of view. Therefore an implementation may support link to path | point of view. Therefore an implementation may support link to path | |||
aggregation. Rather than advertising all specific links of a domain, | aggregation. Rather than advertising all specific links of a domain, | |||
an ASBR may advertise an "aggregate link" between a non-adjacent pair | an ASBR may advertise an "aggregate link" between a non-adjacent pair | |||
of nodes. The "aggregate link" represents the aggregated set of link | of nodes. The "aggregate link" represents the aggregated set of link | |||
properties between a pair of non-adjacent nodes. The actual methods | properties between a pair of non-adjacent nodes. The actual methods | |||
to compute the path properties (of bandwidth, metric) are outside the | to compute the path properties (of bandwidth, metric) are outside the | |||
scope of this document. The decision whether to advertise all | scope of this document. The decision whether to advertise all | |||
specific links or aggregated links is an operator's policy choice. | specific links or aggregated links is an operator's policy choice. | |||
To highlight the varying levels of exposure, the following deployment | To highlight the varying levels of exposure, the following deployment | |||
examples shall be discussed. | examples are discussed. | |||
4.1. Example: No Link Aggregation | 4.1. Example: No Link Aggregation | |||
Consider Figure 38. Both AS1 and AS2 operators want to protect their | Consider Figure 31. Both AS1 and AS2 operators want to protect their | |||
inter-AS {R1,R3}, {R2, R4} links using RSVP-FRR LSPs. If R1 wants to | inter-AS {R1,R3}, {R2, R4} links using RSVP-FRR LSPs. If R1 wants to | |||
compute its link-protection LSP to R3 it needs to "see" an alternate | compute its link-protection LSP to R3 it needs to "see" an alternate | |||
path to R3. Therefore the AS2 operator exposes its topology. All | path to R3. Therefore the AS2 operator exposes its topology. All | |||
BGP TE enabled routers in AS1 "see" the full topology of AS and | BGP TE enabled routers in AS1 "see" the full topology of AS and | |||
therefore can compute a backup path. Note that the decision if the | therefore can compute a backup path. Note that the decision if the | |||
direct link between {R3, R4} or the {R4, R5, R3) path is used is made | direct link between {R3, R4} or the {R4, R5, R3) path is used is made | |||
by the computing router. | by the computing router. | |||
AS1 : AS2 | AS1 : AS2 | |||
: | : | |||
R1-------R3 | R1-------R3 | |||
| : | \ | | : | \ | |||
| : | R5 | | : | R5 | |||
| : | / | | : | / | |||
R2-------R4 | R2-------R4 | |||
: | : | |||
: | : | |||
Figure 38: no-link-aggregation | Figure 31: No link aggregation | |||
4.2. Example: ASBR to ASBR Path Aggregation | 4.2. Example: ASBR to ASBR Path Aggregation | |||
The brief difference between the "no-link aggregation" example and | The brief difference between the "no-link aggregation" example and | |||
this example is that no specific link gets exposed. Consider | this example is that no specific link gets exposed. Consider | |||
Figure 39. The only link which gets advertised by AS2 is an | Figure 32. The only link which gets advertised by AS2 is an | |||
"aggregate" link between R3 and R4. This is enough to tell AS1 that | "aggregate" link between R3 and R4. This is enough to tell AS1 that | |||
there is a backup path. However the actual links being used are | there is a backup path. However the actual links being used are | |||
hidden from the topology. | hidden from the topology. | |||
AS1 : AS2 | AS1 : AS2 | |||
: | : | |||
R1-------R3 | R1-------R3 | |||
| : | | | : | | |||
| : | | | : | | |||
| : | | | : | | |||
R2-------R4 | R2-------R4 | |||
: | : | |||
: | : | |||
Figure 39: asbr-link-aggregation | Figure 32: ASBR link aggregation | |||
4.3. Example: Multi-AS Path Aggregation | 4.3. Example: Multi-AS Path Aggregation | |||
Service providers in control of multiple ASes may even decide to not | Service providers in control of multiple ASes may even decide to not | |||
expose their internal inter-AS links. Consider Figure 40. AS3 is | expose their internal inter-AS links. Consider Figure 33. AS3 is | |||
modeled as a single node which connects to the border routers of the | modeled as a single node which connects to the border routers of the | |||
aggregated domain. | aggregated domain. | |||
AS1 : AS2 : AS3 | AS1 : AS2 : AS3 | |||
: : | : : | |||
R1-------R3----- | R1-------R3----- | |||
| : : \ | | : : \ | |||
| : : vR0 | | : : vR0 | |||
| : : / | | : : / | |||
R2-------R4----- | R2-------R4----- | |||
: : | : : | |||
: : | : : | |||
Figure 40: multi-as-aggregation | Figure 33: Multi-AS aggregation | |||
5. IANA Considerations | 5. IANA Considerations | |||
This document requests a code point from the registry of Address | This document requests a code point from the registry of Address | |||
Family Numbers. | Family Numbers. As per early allocation procedure this is AFI 16388. | |||
This document requests a code point from the registry of Subsequent | ||||
Address Family Numbers. As per early allocation procedure this is | ||||
SAFI 71. | ||||
This document requests a code point from the BGP Path Attributes | This document requests a code point from the BGP Path Attributes | |||
registry. | registry. | |||
This document requests creation of a new registry for node anchor, | This document requests creation of a new registry for node anchor, | |||
link descriptor and link attribute TLVs. Values 0-255 are reserved. | link descriptor and link attribute TLVs. Values 0-255 are reserved. | |||
Values 256-65535 will be used for Codepoints. The registry will be | Values 256-65535 will be used for Codepoints. The registry will be | |||
initialized as shown in Table 2 and Table 4. Allocations within the | initialized as shown in Table 11. Allocations within the registry | |||
registry will require documentation of the proposed use of the | will require documentation of the proposed use of the allocated value | |||
allocated value and approval by the Designated Expert assigned by the | and approval by the Designated Expert assigned by the IESG (see | |||
IESG (see [RFC5226]). | [RFC5226]). | |||
Note to RFC Editor: this section may be removed on publication as an | Note to RFC Editor: this section may be removed on publication as an | |||
RFC. | RFC. | |||
6. Manageability Considerations | 6. Manageability Considerations | |||
This section is structured as recommended in [RFC5706]. | This section is structured as recommended in [RFC5706]. | |||
6.1. Operational Considerations | 6.1. Operational Considerations | |||
6.1.1. Operations | 6.1.1. Operations | |||
Existing BGP operation procedures apply. No new operation procedures | Existing BGP operational procedures apply. No new operation | |||
are defined in this document. It shall be noted that the NLRI | procedures are defined in this document. It is noted that the NLRI | |||
information present in this document purely carries application level | information present in this document purely carries application level | |||
data that have no immediate corresponding forwarding state impact. | data that has no immediate corresponding forwarding state impact. As | |||
As such, any churn in reachability information has different impact | such, any churn in reachability information has different impact than | |||
than regular BGP update which needs to change forwarding state for an | regular BGP updates which need to change forwarding state for an | |||
entire router. Furthermore it is anticipated that distribution of | entire router. Furthermore it is anticipated that distribution of | |||
this NLRI will be handled by dedicated route-reflectors providing a | this NLRI will be handled by dedicated route-reflectors providing a | |||
level of isolation and fault-containment between different NLRI | level of isolation and fault-containment between different NLRI | |||
types. | types. | |||
6.1.2. Installation and Initial Setup | 6.1.2. Installation and Initial Setup | |||
Configuration parameters defined in Section 6.2.3 SHOULD be | Configuration parameters defined in Section 6.2.3 SHOULD be | |||
initialized to the following default values: | initialized to the following default values: | |||
skipping to change at page 37, line 38 | skipping to change at page 36, line 38 | |||
rate at which Link State NLRIs will be advertised/withdrawn from | rate at which Link State NLRIs will be advertised/withdrawn from | |||
neighbors | neighbors | |||
An implementation SHOULD allow the operator to specify the maximum | An implementation SHOULD allow the operator to specify the maximum | |||
number of Link State NLRIs stored in router's RIB. | number of Link State NLRIs stored in router's RIB. | |||
An implementation SHOULD allow the operator to create abstracted | An implementation SHOULD allow the operator to create abstracted | |||
topologies that are advertised to neighbors; Create different | topologies that are advertised to neighbors; Create different | |||
abstractions for different neighbors. | abstractions for different neighbors. | |||
An implementation SHOULD allow the operator to configure a 64-bit | ||||
instance ID. | ||||
An implementation SHOULD allow the operator to configure a pair of | An implementation SHOULD allow the operator to configure a pair of | |||
ASN and BGP identifier per flooding set the node participates in. | ASN and BGP-LS identifier per flooding set the node participates in. | |||
6.2.4. Accounting Management | 6.2.4. Accounting Management | |||
Not Applicable. | Not Applicable. | |||
6.2.5. Performance Management | 6.2.5. Performance Management | |||
An implementation SHOULD provide the following statistics: | An implementation SHOULD provide the following statistics: | |||
o Total number of Link-State NLRI updates sent/received | o Total number of Link-State NLRI updates sent/received | |||
skipping to change at page 38, line 14 | skipping to change at page 37, line 19 | |||
o Number of errored received Link-State NLRI updates, per neighbor | o Number of errored received Link-State NLRI updates, per neighbor | |||
o Total number of locally originated Link-State NLRIs | o Total number of locally originated Link-State NLRIs | |||
6.2.6. Security Management | 6.2.6. Security Management | |||
An operator SHOULD define ACLs to limit inbound updates as follows: | An operator SHOULD define ACLs to limit inbound updates as follows: | |||
o Drop all updates from Consumer peers | o Drop all updates from Consumer peers | |||
7. TLV/SubTLV Code Points Summary | 7. TLV/Sub-TLV Code Points Summary | |||
This section contains the global table of all TLVs/SubTLVs defined in | This section contains the global table of all TLVs/Sub-TLVs defined | |||
this document. | in this document. | |||
+------------+--------------------+---------------+-----------------+ | +-----------+---------------------+---------------+-----------------+ | |||
| TLV/SubTLV | Description | IS-IS | Value defined | | | TLV Code | Description | IS-IS TLV/ | Value defined | | |||
| | | TLV/Sub-TLV | in: | | | Point | | Sub-TLV | in: | | |||
+------------+--------------------+---------------+-----------------+ | +-----------+---------------------+---------------+-----------------+ | |||
| 256 | Identifier | -- | Section 3.2.1 | | | 256 | Local Node | --- | Section 3.2.1.2 | | |||
| 257 | Local Node | -- | Section 3.2.2.1 | | | | Descriptors | | | | |||
| | Descriptors | | | | | 257 | Remote Node | --- | Section 3.2.1.3 | | |||
| 258 | Remote Node | -- | Section 3.2.2.2 | | | | Descriptors | | | | |||
| | Descriptors | | | | | 258 | Link Local/Remote | 22/4 | [RFC5307]/1.1 | | |||
| 259 | Autonomous System | -- | Section 3.2.2.3 | | | | Identifiers | | | | |||
| 260 | BGP Identifier | -- | Section 3.2.2.3 | | | 259 | IPv4 interface | 22/6 | [RFC5305]/3.2 | | |||
| 261 | ISO Node-ID | -- | Section 3.2.2.3 | | | | address | | | | |||
| 262 | IPv4 Router-ID | -- | Section 3.2.2.3 | | | 260 | IPv4 neighbor | 22/8 | [RFC5305]/3.3 | | |||
| 263 | IPv6 Router-ID | -- | Section 3.2.2.3 | | | | address | | | | |||
| 264 | Link Local/Remote | 22/4 | [RFC5307]/1.1 | | | 261 | IPv6 interface | 22/12 | [RFC6119]/4.2 | | |||
| | Identifiers | | | | | | address | | | | |||
| 265 | IPv4 interface | 22/6 | [RFC5305]/3.2 | | | 262 | IPv6 neighbor | 22/13 | [RFC6119]/4.3 | | |||
| | address | | | | | | address | | | | |||
| 266 | IPv4 neighbor | 22/8 | [RFC5305]/3.3 | | | 263 | Multi-Topology ID | --- | Section 3.2.1.5 | | |||
| | address | | | | | 264 | OSPF Route Type | --- | Section 3.2.3 | | |||
| 267 | IPv6 interface | 22/12 | [RFC6119]/4.2 | | | 265 | IP Reachability | --- | Section 3.2.3 | | |||
| | address | | | | | | Information | | | | |||
| 268 | IPv6 neighbor | 22/13 | [RFC6119]/4.3 | | | 512 | Autonomous System | --- | Section 3.2.1.4 | | |||
| | address | | | | | 513 | BGP-LS Identifier | --- | Section 3.2.1.4 | | |||
| 256/5 | Multi Topology ID | -- | Section 3.2.1.5 | | | 514 | Area ID | --- | Section 3.2.1.4 | | |||
| 269 | Administrative | 22/3 | [RFC5305]/3.1 | | | 515 | IGP Router-ID | --- | Section 3.2.1.4 | | |||
| | group (color) | | | | | 1024 | Node Flag Bits | --- | Section 3.3.1.1 | | |||
| 270 | Maximum link | 22/9 | [RFC5305]/3.3 | | | 1025 | Opaque Node | --- | Section 3.3.1.5 | | |||
| | bandwidth | | | | | | Properties | | | | |||
| 271 | Max. reservable | 22/10 | [RFC5305]/3.5 | | | 1026 | Node Name | variable | Section 3.3.1.3 | | |||
| | link bandwidth | | | | | 1027 | IS-IS Area | variable | Section 3.3.1.2 | | |||
| 272 | Unreserved | 22/11 | [RFC5305]/3.6 | | | | Identifier | | | | |||
| | bandwidth | | | | | 1028 | IPv4 Router-ID of | 134/--- | [RFC5305]/4.3 | | |||
| 273 | TE Default Metric | 22/18 | [RFC5305]/3.7 | | | | Local Node | | | | |||
| 274 | Link Protection | 22/20 | [RFC5307]/1.2 | | | 1029 | IPv6 Router-ID of | 140/--- | [RFC6119]/4.1 | | |||
| | Type | | | | | | Local Node | | | | |||
| 275 | MPLS Protocol Mask | -- | Section 3.3.1.1 | | | 1030 | IPv4 Router-ID of | 134/--- | [RFC5305]/4.3 | | |||
| 276 | Metric | -- | Section 3.3.1.2 | | | | Remote Node | | | | |||
| 277 | Shared Risk Link | -- | Section 3.3.1.3 | | | 1031 | IPv6 Router-ID of | 140/--- | [RFC6119]/4.1 | | |||
| | Group | | | | | | Remote Node | | | | |||
| 278 | OSPF specific link | -- | Section 3.3.1.4 | | | 1088 | Administrative | 22/3 | [RFC5305]/3.1 | | |||
| | attribute | | | | | | group (color) | | | | |||
| 279 | IS-IS Specific | -- | Section 3.3.1.5 | | | 1089 | Maximum link | 22/9 | [RFC5305]/3.3 | | |||
| | Link Attribute | | | | | | bandwidth | | | | |||
| 280 | Node Flag Bits | -- | Section 3.3.2.2 | | | 1090 | Max. reservable | 22/10 | [RFC5305]/3.5 | | |||
| 281 | OSPF Specific Node | -- | Section 3.3.2.3 | | | | link bandwidth | | | | |||
| | Properties | | | | | 1091 | Unreserved | 22/11 | [RFC5305]/3.6 | | |||
| 282 | IS-IS Specific | -- | Section 3.3.2.4 | | | | bandwidth | | | | |||
| | Node Properties | | | | | 1092 | TE Default Metric | 22/18 | [RFC5305]/3.7 | | |||
| 283 | IGP Flags | -- | Section 3.3.3.1 | | | 1093 | Link Protection | 22/20 | [RFC5307]/1.2 | | |||
| 284 | Route Tag | -- | [RFC5130] | | | | Type | | | | |||
| 285 | Extended Tag | -- | [RFC5130] | | | 1094 | MPLS Protocol Mask | --- | Section 3.3.2.2 | | |||
| 286 | Prefix Metric | -- | [RFC5305] | | | 1095 | Metric | --- | Section 3.3.2.3 | | |||
| 287 | OSPF Forwarding | -- | [RFC2328] | | | 1096 | Shared Risk Link | --- | Section 3.3.2.4 | | |||
| | Address | | | | | | Group | | | | |||
+------------+--------------------+---------------+-----------------+ | | 1097 | Opaque link | --- | Section 3.3.2.5 | | |||
| | attribute | | | | ||||
| 1098 | Link Name attribute | --- | Section 3.3.2.6 | | ||||
| 1152 | IGP Flags | --- | Section 3.3.3.1 | | ||||
| 1153 | Route Tag | --- | [RFC5130] | | ||||
| 1154 | Extended Tag | --- | [RFC5130] | | ||||
| 1155 | Prefix Metric | --- | [RFC5305] | | ||||
| 1156 | OSPF Forwarding | --- | [RFC2328] | | ||||
| | Address | | | | ||||
| 1157 | Opaque Prefix | --- | Section 3.3.3.6 | | ||||
| | Attribute | | | | ||||
+-----------+---------------------+---------------+-----------------+ | ||||
Table 10: Summary Table of TLV/SubTLV Codepoints | Table 11: Summary Table of TLV/Sub-TLV Codepoints | |||
8. Security Considerations | 8. Security Considerations | |||
Procedures and protocol extensions defined in this document do not | Procedures and protocol extensions defined in this document do not | |||
affect the BGP security model. | affect the BGP security model. See | |||
[I-D.ietf-karp-routing-tcp-analysis] for details. | ||||
A BGP Speaker SHOULD NOT accept updates from a Consumer peer. | A BGP Speaker SHOULD NOT accept updates from a Consumer peer. | |||
An operator SHOULD employ a mechanism to protect a BGP Speaker | An operator SHOULD employ a mechanism to protect a BGP Speaker | |||
against DDOS attacks from Consumers. | against DDOS attacks from Consumers. | |||
9. Contributors | 9. Contributors | |||
We would like to thank Robert Varga for the significant contribution | We would like to thank Robert Varga for the significant contribution | |||
he gave to this document. | he gave to this document. | |||
10. Acknowledgements | 10. Acknowledgements | |||
We would like to thank Nischal Sheth, Alia Atlas, David Ward, Derek | We would like to thank Nischal Sheth, Alia Atlas, David Ward, Derek | |||
Yeung, Murtuza Lightwala, John Scudder, Kaliraj Vairavakkalai, Les | Yeung, Murtuza Lightwala, John Scudder, Kaliraj Vairavakkalai, Les | |||
Ginsberg, Liem Nguyen, Manish Bhardwaj, Mike Shand, Peter Psenak, Rex | Ginsberg, Liem Nguyen, Manish Bhardwaj, Mike Shand, Peter Psenak, Rex | |||
Fernando, Richard Woundy, Steven Luong, Tamas Mondal, Waqas Alam, | Fernando, Richard Woundy, Steven Luong, Tamas Mondal, Waqas Alam, | |||
Vipin Kumar, Naiming Shen and Yakov Rekhter for their comments. | Vipin Kumar, Naiming Shen, Balaji Rajagopalan and Yakov Rekhter for | |||
their comments. | ||||
11. References | 11. References | |||
11.1. Normative References | 11.1. Normative References | |||
[RFC1195] Callon, R., "Use of OSI IS-IS for routing in TCP/IP and | [RFC1195] Callon, R., "Use of OSI IS-IS for routing in TCP/IP and | |||
dual environments", RFC 1195, December 1990. | dual environments", RFC 1195, December 1990. | |||
[RFC1918] Rekhter, Y., Moskowitz, R., Karrenberg, D., Groot, G., and | [RFC1918] Rekhter, Y., Moskowitz, R., Karrenberg, D., Groot, G., and | |||
E. Lear, "Address Allocation for Private Internets", | E. Lear, "Address Allocation for Private Internets", | |||
skipping to change at page 41, line 19 | skipping to change at page 40, line 30 | |||
[RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, April 1998. | [RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, April 1998. | |||
[RFC2545] Marques, P. and F. Dupont, "Use of BGP-4 Multiprotocol | [RFC2545] Marques, P. and F. Dupont, "Use of BGP-4 Multiprotocol | |||
Extensions for IPv6 Inter-Domain Routing", RFC 2545, | Extensions for IPv6 Inter-Domain Routing", RFC 2545, | |||
March 1999. | March 1999. | |||
[RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., | [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., | |||
and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP | and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP | |||
Tunnels", RFC 3209, December 2001. | Tunnels", RFC 3209, December 2001. | |||
[RFC3490] Faltstrom, P., Hoffman, P., and A. Costello, | ||||
"Internationalizing Domain Names in Applications (IDNA)", | ||||
RFC 3490, March 2003. | ||||
[RFC4202] Kompella, K. and Y. Rekhter, "Routing Extensions in | [RFC4202] Kompella, K. and Y. Rekhter, "Routing Extensions in | |||
Support of Generalized Multi-Protocol Label Switching | Support of Generalized Multi-Protocol Label Switching | |||
(GMPLS)", RFC 4202, October 2005. | (GMPLS)", RFC 4202, October 2005. | |||
[RFC4271] Rekhter, Y., Li, T., and S. Hares, "A Border Gateway | [RFC4271] Rekhter, Y., Li, T., and S. Hares, "A Border Gateway | |||
Protocol 4 (BGP-4)", RFC 4271, January 2006. | Protocol 4 (BGP-4)", RFC 4271, January 2006. | |||
[RFC4760] Bates, T., Chandra, R., Katz, D., and Y. Rekhter, | [RFC4760] Bates, T., Chandra, R., Katz, D., and Y. Rekhter, | |||
"Multiprotocol Extensions for BGP-4", RFC 4760, | "Multiprotocol Extensions for BGP-4", RFC 4760, | |||
January 2007. | January 2007. | |||
skipping to change at page 41, line 49 | skipping to change at page 41, line 17 | |||
Intermediate Systems (IS-ISs)", RFC 5120, February 2008. | Intermediate Systems (IS-ISs)", RFC 5120, February 2008. | |||
[RFC5130] Previdi, S., Shand, M., and C. Martin, "A Policy Control | [RFC5130] Previdi, S., Shand, M., and C. Martin, "A Policy Control | |||
Mechanism in IS-IS Using Administrative Tags", RFC 5130, | Mechanism in IS-IS Using Administrative Tags", RFC 5130, | |||
February 2008. | February 2008. | |||
[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an | [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an | |||
IANA Considerations Section in RFCs", BCP 26, RFC 5226, | IANA Considerations Section in RFCs", BCP 26, RFC 5226, | |||
May 2008. | May 2008. | |||
[RFC5301] McPherson, D. and N. Shen, "Dynamic Hostname Exchange | ||||
Mechanism for IS-IS", RFC 5301, October 2008. | ||||
[RFC5305] Li, T. and H. Smit, "IS-IS Extensions for Traffic | [RFC5305] Li, T. and H. Smit, "IS-IS Extensions for Traffic | |||
Engineering", RFC 5305, October 2008. | Engineering", RFC 5305, October 2008. | |||
[RFC5307] Kompella, K. and Y. Rekhter, "IS-IS Extensions in Support | [RFC5307] Kompella, K. and Y. Rekhter, "IS-IS Extensions in Support | |||
of Generalized Multi-Protocol Label Switching (GMPLS)", | of Generalized Multi-Protocol Label Switching (GMPLS)", | |||
RFC 5307, October 2008. | RFC 5307, October 2008. | |||
[RFC6119] Harrison, J., Berger, J., and M. Bartlett, "IPv6 Traffic | [RFC6119] Harrison, J., Berger, J., and M. Bartlett, "IPv6 Traffic | |||
Engineering in IS-IS", RFC 6119, February 2011. | Engineering in IS-IS", RFC 6119, February 2011. | |||
[RFC6286] Chen, E. and J. Yuan, "Autonomous-System-Wide Unique BGP | ||||
Identifier for BGP-4", RFC 6286, June 2011. | ||||
[RFC6822] Previdi, S., Ginsberg, L., Shand, M., Roy, A., and D. | [RFC6822] Previdi, S., Ginsberg, L., Shand, M., Roy, A., and D. | |||
Ward, "IS-IS Multi-Instance", RFC 6822, December 2012. | Ward, "IS-IS Multi-Instance", RFC 6822, December 2012. | |||
11.2. Informative References | 11.2. Informative References | |||
[I-D.ietf-alto-protocol] | [I-D.ietf-alto-protocol] | |||
Alimi, R., Penno, R., and Y. Yang, "ALTO Protocol", | Alimi, R., Penno, R., and Y. Yang, "ALTO Protocol", | |||
draft-ietf-alto-protocol-13 (work in progress), | draft-ietf-alto-protocol-13 (work in progress), | |||
September 2012. | September 2012. | |||
[I-D.ietf-karp-routing-tcp-analysis] | ||||
Jethanandani, M., Patel, K., and L. Zheng, "Analysis of | ||||
BGP, LDP, PCEP and MSDP Issues According to KARP Design | ||||
Guide", draft-ietf-karp-routing-tcp-analysis-07 (work in | ||||
progress), April 2013. | ||||
[RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation | [RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation | |||
Element (PCE)-Based Architecture", RFC 4655, August 2006. | Element (PCE)-Based Architecture", RFC 4655, August 2006. | |||
[RFC4970] Lindem, A., Shen, N., Vasseur, JP., Aggarwal, R., and S. | [RFC4970] Lindem, A., Shen, N., Vasseur, JP., Aggarwal, R., and S. | |||
Shaffer, "Extensions to OSPF for Advertising Optional | Shaffer, "Extensions to OSPF for Advertising Optional | |||
Router Capabilities", RFC 4970, July 2007. | Router Capabilities", RFC 4970, July 2007. | |||
[RFC5073] Vasseur, J. and J. Le Roux, "IGP Routing Protocol | [RFC5073] Vasseur, J. and J. Le Roux, "IGP Routing Protocol | |||
Extensions for Discovery of Traffic Engineering Node | Extensions for Discovery of Traffic Engineering Node | |||
Capabilities", RFC 5073, December 2007. | Capabilities", RFC 5073, December 2007. | |||
[RFC5152] Vasseur, JP., Ayyangar, A., and R. Zhang, "A Per-Domain | [RFC5152] Vasseur, JP., Ayyangar, A., and R. Zhang, "A Per-Domain | |||
Path Computation Method for Establishing Inter-Domain | Path Computation Method for Establishing Inter-Domain | |||
Traffic Engineering (TE) Label Switched Paths (LSPs)", | Traffic Engineering (TE) Label Switched Paths (LSPs)", | |||
skipping to change at page 42, line 38 | skipping to change at page 42, line 17 | |||
[RFC5073] Vasseur, J. and J. Le Roux, "IGP Routing Protocol | [RFC5073] Vasseur, J. and J. Le Roux, "IGP Routing Protocol | |||
Extensions for Discovery of Traffic Engineering Node | Extensions for Discovery of Traffic Engineering Node | |||
Capabilities", RFC 5073, December 2007. | Capabilities", RFC 5073, December 2007. | |||
[RFC5152] Vasseur, JP., Ayyangar, A., and R. Zhang, "A Per-Domain | [RFC5152] Vasseur, JP., Ayyangar, A., and R. Zhang, "A Per-Domain | |||
Path Computation Method for Establishing Inter-Domain | Path Computation Method for Establishing Inter-Domain | |||
Traffic Engineering (TE) Label Switched Paths (LSPs)", | Traffic Engineering (TE) Label Switched Paths (LSPs)", | |||
RFC 5152, February 2008. | RFC 5152, February 2008. | |||
[RFC5316] Chen, M., Zhang, R., and X. Duan, "ISIS Extensions in | ||||
Support of Inter-Autonomous System (AS) MPLS and GMPLS | ||||
Traffic Engineering", RFC 5316, December 2008. | ||||
[RFC5392] Chen, M., Zhang, R., and X. Duan, "OSPF Extensions in | ||||
Support of Inter-Autonomous System (AS) MPLS and GMPLS | ||||
Traffic Engineering", RFC 5392, January 2009. | ||||
[RFC5693] Seedorf, J. and E. Burger, "Application-Layer Traffic | [RFC5693] Seedorf, J. and E. Burger, "Application-Layer Traffic | |||
Optimization (ALTO) Problem Statement", RFC 5693, | Optimization (ALTO) Problem Statement", RFC 5693, | |||
October 2009. | October 2009. | |||
[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, November 2009. | RFC 5706, November 2009. | |||
[RFC6286] Chen, E. and J. Yuan, "Autonomous-System-Wide Unique BGP | ||||
Identifier for BGP-4", RFC 6286, June 2011. | ||||
[RFC6549] Lindem, A., Roy, A., and S. Mirtorabi, "OSPFv2 Multi- | [RFC6549] Lindem, A., Roy, A., and S. Mirtorabi, "OSPFv2 Multi- | |||
Instance Extensions", RFC 6549, March 2012. | Instance Extensions", RFC 6549, March 2012. | |||
Authors' Addresses | Authors' Addresses | |||
Hannes Gredler | Hannes Gredler | |||
Juniper Networks, Inc. | Juniper Networks, Inc. | |||
1194 N. Mathilda Ave. | 1194 N. Mathilda Ave. | |||
Sunnyvale, CA 94089 | Sunnyvale, CA 94089 | |||
US | US | |||
End of changes. 225 change blocks. | ||||
904 lines changed or deleted | 819 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |