| < draft-ietf-idr-te-lsp-distribution-14.txt | draft-ietf-idr-te-lsp-distribution-15.txt > | |||
|---|---|---|---|---|
| Network Working Group S. Previdi | Network Working Group S. Previdi | |||
| Internet-Draft | Internet-Draft | |||
| Intended status: Standards Track K. Talaulikar, Ed. | Intended status: Standards Track K. Talaulikar, Ed. | |||
| Expires: April 26, 2021 Cisco Systems, Inc. | Expires: November 6, 2021 Cisco Systems, Inc. | |||
| J. Dong, Ed. | J. Dong, Ed. | |||
| M. Chen | M. Chen | |||
| Huawei Technologies | Huawei Technologies | |||
| H. Gredler | H. Gredler | |||
| RtBrick Inc. | RtBrick Inc. | |||
| J. Tantsura | J. Tantsura | |||
| Apstra | Apstra | |||
| October 23, 2020 | May 5, 2021 | |||
| Distribution of Traffic Engineering (TE) Policies and State using BGP-LS | Distribution of Traffic Engineering (TE) Policies and State using BGP-LS | |||
| draft-ietf-idr-te-lsp-distribution-14 | draft-ietf-idr-te-lsp-distribution-15 | |||
| Abstract | Abstract | |||
| This document describes a mechanism to collect the Traffic | This document describes a mechanism to collect the Traffic | |||
| Engineering and Policy information that is locally available in a | Engineering and Policy information that is locally available in a | |||
| node and advertise it into BGP Link State (BGP-LS) updates. Such | node and advertise it into BGP Link State (BGP-LS) updates. Such | |||
| information can be used by external components for path computation, | information can be used by external components for path computation, | |||
| re-optimization, service placement, network visualization, etc. | re-optimization, service placement, network visualization, etc. | |||
| Status of This Memo | Status of This Memo | |||
| skipping to change at page 1, line 42 ¶ | skipping to change at page 1, line 42 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on April 26, 2021. | This Internet-Draft will expire on November 6, 2021. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2021 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| skipping to change at page 2, line 35 ¶ | skipping to change at page 2, line 35 ¶ | |||
| 4.4. IPv4/IPv6 Tunnel Tail-End Address . . . . . . . . . . . . 9 | 4.4. IPv4/IPv6 Tunnel Tail-End Address . . . . . . . . . . . . 9 | |||
| 4.5. SR Policy Candidate Path Descriptor . . . . . . . . . . . 10 | 4.5. SR Policy Candidate Path Descriptor . . . . . . . . . . . 10 | |||
| 4.6. Local MPLS Cross Connect . . . . . . . . . . . . . . . . 11 | 4.6. Local MPLS Cross Connect . . . . . . . . . . . . . . . . 11 | |||
| 4.6.1. MPLS Cross Connect Interface . . . . . . . . . . . . 13 | 4.6.1. MPLS Cross Connect Interface . . . . . . . . . . . . 13 | |||
| 4.6.2. MPLS Cross Connect FEC . . . . . . . . . . . . . . . 14 | 4.6.2. MPLS Cross Connect FEC . . . . . . . . . . . . . . . 14 | |||
| 5. MPLS-TE Policy State TLV . . . . . . . . . . . . . . . . . . 15 | 5. MPLS-TE Policy State TLV . . . . . . . . . . . . . . . . . . 15 | |||
| 5.1. RSVP Objects . . . . . . . . . . . . . . . . . . . . . . 16 | 5.1. RSVP Objects . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 5.2. PCEP Objects . . . . . . . . . . . . . . . . . . . . . . 17 | 5.2. PCEP Objects . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 6. SR Policy State TLVs . . . . . . . . . . . . . . . . . . . . 18 | 6. SR Policy State TLVs . . . . . . . . . . . . . . . . . . . . 18 | |||
| 6.1. SR Binding SID . . . . . . . . . . . . . . . . . . . . . 18 | 6.1. SR Binding SID . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 6.2. SR Candidate Path State . . . . . . . . . . . . . . . . . 20 | 6.2. SRv6 Binding SID . . . . . . . . . . . . . . . . . . . . 20 | |||
| 6.3. SR Candidate Path Name . . . . . . . . . . . . . . . . . 22 | 6.3. SR Candidate Path State . . . . . . . . . . . . . . . . . 22 | |||
| 6.4. SR Candidate Path Constraints . . . . . . . . . . . . . . 22 | 6.4. SR Policy Name . . . . . . . . . . . . . . . . . . . . . 24 | |||
| 6.4.1. SR Affinity Constraint . . . . . . . . . . . . . . . 24 | 6.5. SR Candidate Path Name . . . . . . . . . . . . . . . . . 24 | |||
| 6.4.2. SR SRLG Constraint . . . . . . . . . . . . . . . . . 25 | 6.6. SR Candidate Path Constraints . . . . . . . . . . . . . . 25 | |||
| 6.4.3. SR Bandwidth Constraint . . . . . . . . . . . . . . . 26 | 6.6.1. SR Affinity Constraint . . . . . . . . . . . . . . . 27 | |||
| 6.4.4. SR Disjoint Group Constraint . . . . . . . . . . . . 26 | 6.6.2. SR SRLG Constraint . . . . . . . . . . . . . . . . . 28 | |||
| 6.5. SR Segment List . . . . . . . . . . . . . . . . . . . . . 28 | 6.6.3. SR Bandwidth Constraint . . . . . . . . . . . . . . . 28 | |||
| 6.6. SR Segment . . . . . . . . . . . . . . . . . . . . . . . 31 | 6.6.4. SR Disjoint Group Constraint . . . . . . . . . . . . 29 | |||
| 6.6.1. Segment Descriptors . . . . . . . . . . . . . . . . . 32 | 6.7. SR Segment List . . . . . . . . . . . . . . . . . . . . . 31 | |||
| 6.7. SR Segment List Metric . . . . . . . . . . . . . . . . . 39 | 6.8. SR Segment . . . . . . . . . . . . . . . . . . . . . . . 33 | |||
| 7. Procedures . . . . . . . . . . . . . . . . . . . . . . . . . 41 | 6.8.1. Segment Descriptors . . . . . . . . . . . . . . . . . 35 | |||
| 8. Manageability Considerations . . . . . . . . . . . . . . . . 41 | 6.9. SR Segment List Metric . . . . . . . . . . . . . . . . . 42 | |||
| 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 42 | 7. Procedures . . . . . . . . . . . . . . . . . . . . . . . . . 44 | |||
| 9.1. BGP-LS NLRI-Types . . . . . . . . . . . . . . . . . . . . 42 | 8. Manageability Considerations . . . . . . . . . . . . . . . . 44 | |||
| 9.2. BGP-LS Protocol-IDs . . . . . . . . . . . . . . . . . . . 42 | 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 45 | |||
| 9.3. BGP-LS TLVs . . . . . . . . . . . . . . . . . . . . . . . 42 | 9.1. BGP-LS NLRI-Types . . . . . . . . . . . . . . . . . . . . 45 | |||
| 9.4. BGP-LS SR Policy Protocol Origin . . . . . . . . . . . . 43 | 9.2. BGP-LS Protocol-IDs . . . . . . . . . . . . . . . . . . . 45 | |||
| 9.5. BGP-LS TE State Object Origin . . . . . . . . . . . . . . 44 | 9.3. BGP-LS TLVs . . . . . . . . . . . . . . . . . . . . . . . 45 | |||
| 9.6. BGP-LS TE State Address Family . . . . . . . . . . . . . 44 | 9.4. BGP-LS SR Policy Protocol Origin . . . . . . . . . . . . 46 | |||
| 9.7. BGP-LS SR Segment Descriptors . . . . . . . . . . . . . . 44 | 9.5. BGP-LS TE State Object Origin . . . . . . . . . . . . . . 47 | |||
| 9.8. BGP-LS Metric Type . . . . . . . . . . . . . . . . . . . 45 | 9.6. BGP-LS TE State Address Family . . . . . . . . . . . . . 47 | |||
| 10. Security Considerations . . . . . . . . . . . . . . . . . . . 45 | 9.7. BGP-LS SR Segment Descriptors . . . . . . . . . . . . . . 47 | |||
| 11. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 46 | 9.8. BGP-LS Metric Type . . . . . . . . . . . . . . . . . . . 48 | |||
| 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 46 | 10. Security Considerations . . . . . . . . . . . . . . . . . . . 48 | |||
| 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 46 | 11. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 49 | |||
| 13.1. Normative References . . . . . . . . . . . . . . . . . . 46 | 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 49 | |||
| 13.2. Informative References . . . . . . . . . . . . . . . . . 48 | 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 49 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 49 | 13.1. Normative References . . . . . . . . . . . . . . . . . . 49 | |||
| 13.2. Informative References . . . . . . . . . . . . . . . . . 51 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 52 | ||||
| 1. Introduction | 1. Introduction | |||
| In many network environments, traffic engineering (TE) policies are | In many network environments, traffic engineering (TE) policies are | |||
| instantiated into various forms: | instantiated into various forms: | |||
| o MPLS Traffic Engineering Label Switched Paths (TE-LSPs). | o MPLS Traffic Engineering Label Switched Paths (TE-LSPs). | |||
| o IP based tunnels (IP in IP, GRE, etc). | o IP based tunnels (IP in IP, GRE, etc). | |||
| skipping to change at page 13, line 18 ¶ | skipping to change at page 13, line 18 ¶ | |||
| | 556 | MPLS Cross Connect Interface | | | 556 | MPLS Cross Connect Interface | | |||
| | 557 | MPLS Cross Connect FEC | | | 557 | MPLS Cross Connect FEC | | |||
| +-----------+----------------------------------+ | +-----------+----------------------------------+ | |||
| These are defined in the following sub-sections. | These are defined in the following sub-sections. | |||
| 4.6.1. MPLS Cross Connect Interface | 4.6.1. MPLS Cross Connect Interface | |||
| The MPLS Cross Connect Interface sub-TLV is optional and contains the | The MPLS Cross Connect Interface sub-TLV is optional and contains the | |||
| identifier of the interface (incoming or outgoing) in the form of an | identifier of the interface (incoming or outgoing) in the form of an | |||
| IPv4 address or an IPv6 address. | IPv4/IPv6 address and/or a local interface identifier. | |||
| The MPLS Cross Connect Interface sub-TLV has the following format: | The MPLS Cross Connect Interface sub-TLV has the following format: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length | | | Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| skipping to change at page 18, line 39 ¶ | skipping to change at page 18, line 39 ¶ | |||
| status. These TLVs are carried in the optional non-transitive BGP | status. These TLVs are carried in the optional non-transitive BGP | |||
| Attribute "LINK_STATE Attribute" defined in [RFC7752] and enable the | Attribute "LINK_STATE Attribute" defined in [RFC7752] and enable the | |||
| same consistent form of reporting for SR Policy state irrespective of | same consistent form of reporting for SR Policy state irrespective of | |||
| the Protocol-Origin used to provision the policy. Detailed procedure | the Protocol-Origin used to provision the policy. Detailed procedure | |||
| is described in Section 7 . | is described in Section 7 . | |||
| 6.1. SR Binding SID | 6.1. SR Binding SID | |||
| The SR Binding SID (BSID) is an optional TLV that provides the BSID | The SR Binding SID (BSID) is an optional TLV that provides the BSID | |||
| and its attributes for the SR Policy CP. The TLV MAY also optionally | and its attributes for the SR Policy CP. The TLV MAY also optionally | |||
| contain the Provisioned BSID value for reporting when explicitly | contain the Specified BSID value for reporting as described in | |||
| provisioned. | section 6.2.3 of [I-D.ietf-spring-segment-routing-policy]. | |||
| The TLV has the following format: | The TLV has the following format: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length | | | Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | BSID Flags | RESERVED | | | BSID Flags | RESERVED | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Binding SID (4 or 16 octets) // | | Binding SID (4 or 16 octets) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Provisioned Binding SID (4 or 16 octets) // | | Specified Binding SID (4 or 16 octets) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| where: | where: | |||
| o Type: 1201 | o Type: 1201 | |||
| o Length: variable (valid values are 12 or 36 octets) | o Length: variable (valid values are 12 or 36 octets) | |||
| o BSID Flags: 2 octet field that indicates attribute and status of | o BSID Flags: 2 octet field that indicates attribute and status of | |||
| the Binding SID (BSID) associated with this CP. The following bit | the Binding SID (BSID) associated with this CP. The following bit | |||
| skipping to change at page 19, line 45 ¶ | skipping to change at page 19, line 45 ¶ | |||
| where: | where: | |||
| * D-Flag : Indicates the dataplane for the BSIDs and if they are | * D-Flag : Indicates the dataplane for the BSIDs and if they are | |||
| 16 octet SRv6 SID when set and are 4 octet SR/MPLS label value | 16 octet SRv6 SID when set and are 4 octet SR/MPLS label value | |||
| when clear. | when clear. | |||
| * B-Flag : Indicates the allocation of the value in the BSID | * B-Flag : Indicates the allocation of the value in the BSID | |||
| field when set and indicates that BSID is not allocated when | field when set and indicates that BSID is not allocated when | |||
| clear. | clear. | |||
| * U-Flag : Indicates the provisioned BSID value is unavailable | * U-Flag : Indicates the specified BSID value is unavailable when | |||
| when set. | set. | |||
| * L-Flag : Indicates the BSID value is from the Segment Routing | * L-Flag : Indicates the BSID value is from the Segment Routing | |||
| Local Block (SRLB) of the headend node when set and is from the | Local Block (SRLB) of the headend node when set and is from the | |||
| local dynamic label pool when clear | local dynamic label pool when clear | |||
| * F-Flag : Indicates the BSID value is one allocated from dynamic | * F-Flag : Indicates the BSID value is one allocated from dynamic | |||
| label pool due to fallback (e.g. when specified BSID is | label pool due to fallback (e.g. when specified BSID is | |||
| unavailable) when set. | unavailable) when set. | |||
| o RESERVED: 2 octets. SHOULD be set to 0 by originator and MUST be | o RESERVED: 2 octets. SHOULD be set to 0 by originator and MUST be | |||
| ignored by receiver. | ignored by receiver. | |||
| o Binding SID: It indicates the operational or allocated BSID value | o Binding SID: It indicates the operational or allocated BSID value | |||
| for the CP based on the status flags. | for the CP based on the status flags. | |||
| o Provisioned BSID: It is used to report the explicitly provisioned | o Specified BSID: It is used to report the explicitly specified BSID | |||
| BSID value regardless of whether it is successfully allocated or | value regardless of whether it is successfully allocated or not. | |||
| not. The field is set to value 0 when BSID has not been specified | The field is set to value 0 when BSID has not been specified for | |||
| or provisioned for the CP. | the CP. | |||
| The BSID fields above are 4 octet carrying the MPLS Label or 16 | The BSID fields above are 4 octet carrying the MPLS Label or 16 | |||
| octets carrying the SRv6 SID based on the BSID D-flag. When carrying | octets carrying the SRv6 SID based on the BSID D-flag. When carrying | |||
| the MPLS Label, as shown in the figure below, the TC, S and TTL | the MPLS Label, as shown in the figure below, the TC, S and TTL | |||
| (total of 12 bits) are RESERVED and SHOULD be set to 0 by originator | (total of 12 bits) are RESERVED and SHOULD be set to 0 by originator | |||
| and MUST be ignored by the receiver. | and MUST be ignored by the receiver. | |||
| 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Label | TC |S| TTL | | | Label | TC |S| TTL | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| 6.2. SR Candidate Path State | In the case of an SRv6, the Binding SID sub-TLV does not have the | |||
| ability to signal the SRv6 Endpoint Behavior [RFC8986] or the | ||||
| structure of the SID. It is RECOMMENDED that the SRv6 Binding SID | ||||
| TLV defined in Section 6.2, that enables the specification of the | ||||
| SRv6 Endpoint Behavior, be used for signaling of an SRv6 Binding SID | ||||
| for an SR Policy candidate path. | ||||
| 6.2. SRv6 Binding SID | ||||
| The SRv6 Binding SID (BSID) is an optional TLV that provides the SRv6 | ||||
| BSID and its attributes for the SR Policy CP. The TLV MAY also | ||||
| optionally contain the Specified SRv6 BSID value for reporting as | ||||
| described in section 6.2.3 of | ||||
| [I-D.ietf-spring-segment-routing-policy]. | ||||
| The TLV has the following format: | ||||
| 0 1 2 3 | ||||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Type | Length | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | BSID Flags | RESERVED | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Binding SID (16 octets) // | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Specified Binding SID (16 octets) // | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| // Sub-TLVs (variable) // | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| where: | ||||
| o Type: TBD | ||||
| o Length: variable | ||||
| o BSID Flags: 2 octet field that indicates attribute and status of | ||||
| the Binding SID (BSID) associated with this CP. The following bit | ||||
| positions are defined and the semantics are described in detail in | ||||
| [I-D.ietf-spring-segment-routing-policy]. Other bits SHOULD be | ||||
| cleared by originator and MUST be ignored by receiver. | ||||
| 0 1 | ||||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| |B|U|F| | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| where: | ||||
| * B-Flag : Indicates the allocation of the value in the BSID | ||||
| field when set and indicates that BSID is not allocated when | ||||
| clear. | ||||
| * U-Flag : Indicates the specified BSID value is unavailable when | ||||
| set. | ||||
| * F-Flag : Indicates the BSID value is one allocated dynamically | ||||
| due to fallback (e.g. when specified BSID is unavailable) when | ||||
| set. | ||||
| o RESERVED: 2 octets. SHOULD be set to 0 by originator and MUST be | ||||
| ignored by receiver. | ||||
| o Binding SID: It indicates the operational or allocated BSID value | ||||
| for the CP based on the status flags. | ||||
| o Specified BSID: It is used to report the explicitly specified BSID | ||||
| value regardless of whether it is successfully allocated or not. | ||||
| The field is set to value 0 when BSID has not been specified for | ||||
| the CP. | ||||
| o Sub-TLVs : variable and contains any other optional attributes | ||||
| associated with the SRv6 BSID. | ||||
| The SRv6 Endpoint Behavior TLV (1250) and the SRv6 SID Structure TLV | ||||
| (1252) defined in [I-D.ietf-idr-bgpls-srv6-ext] are used as sub-TLVs | ||||
| of the SRv6 Binding SID TLV to optionally indicate the SRv6 Endpoint | ||||
| behavior and SID structure for the Binding SID value in the TLV. | ||||
| 6.3. SR Candidate Path State | ||||
| The SR Candidate Path (CP) State TLV provides the operational status | The SR Candidate Path (CP) State TLV provides the operational status | |||
| and attributes of the SR Policy at the CP level. The TLV has the | and attributes of the SR Policy at the CP level. The TLV has the | |||
| following format: | following format: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length | | | Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| skipping to change at page 22, line 22 ¶ | skipping to change at page 24, line 13 ¶ | |||
| [I-D.ietf-spring-segment-routing-policy]. | [I-D.ietf-spring-segment-routing-policy]. | |||
| * T-Flag : Indicates the CP has been marked as eligible for use | * T-Flag : Indicates the CP has been marked as eligible for use | |||
| as Transit Policy on the headend when set. Refer Section 8.3 | as Transit Policy on the headend when set. Refer Section 8.3 | |||
| of [I-D.ietf-spring-segment-routing-policy]. | of [I-D.ietf-spring-segment-routing-policy]. | |||
| o Preference : 4 octet value which indicates the preference of the | o Preference : 4 octet value which indicates the preference of the | |||
| CP. Refer Section 2.7 of | CP. Refer Section 2.7 of | |||
| [I-D.ietf-spring-segment-routing-policy]. | [I-D.ietf-spring-segment-routing-policy]. | |||
| 6.3. SR Candidate Path Name | 6.4. SR Policy Name | |||
| The SR Policy Name TLV is an optional TLV that is used to carry the | ||||
| symbolic name associated with the SR Policy. The TLV has the | ||||
| following format: | ||||
| 0 1 2 3 | ||||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Type | Length | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | SR Policy Name (variable) // | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| where: | ||||
| o Type: TBD | ||||
| o Length: variable | ||||
| o SR Policy Name : Symbolic name for the SR Policy without a NULL | ||||
| terminator as specified in section 2.6 of | ||||
| [I-D.ietf-spring-segment-routing-policy]. It is RECOMMENDED that | ||||
| the size of the symbolic name be limited to 255 bytes. | ||||
| Implementations MAY choose to truncate long names to 255 bytes | ||||
| when signaling via BGP-LS. | ||||
| 6.5. SR Candidate Path Name | ||||
| The SR Candidate Path Name TLV is an optional TLV that is used to | The SR Candidate Path Name TLV is an optional TLV that is used to | |||
| carry the symbolic name associated with the candidate path. The TLV | carry the symbolic name associated with the candidate path. The TLV | |||
| has the following format: | has the following format: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length | | | Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Candidate Path Symbolic Name (variable) // | | Candidate Path Name (variable) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| where: | where: | |||
| o Type: 1203 | o Type: 1203 | |||
| o Length: variable | o Length: variable | |||
| o CP Name : Symbolic name for the CP. It is a string of printable | o Candidate Path Name : Symbolic name for the SR Policy candidate | |||
| ASCII characters without a NULL terminator. | path without a NULL terminator as specified in section 2.6 of | |||
| [I-D.ietf-spring-segment-routing-policy]. It is RECOMMENDED that | ||||
| the size of the symbolic name be limited to 255 bytes. | ||||
| Implementations MAY choose to truncate long names to 255 bytes | ||||
| when signaling via BGP-LS. | ||||
| 6.4. SR Candidate Path Constraints | 6.6. SR Candidate Path Constraints | |||
| The SR Candidate Path Constraints TLV is an optional TLV that is used | The SR Candidate Path Constraints TLV is an optional TLV that is used | |||
| to report the constraints associated with the candidate path. The | to report the constraints associated with the candidate path. The | |||
| constraints are generally applied to a dynamic candidate path which | constraints are generally applied to a dynamic candidate path which | |||
| is computed by the headend. The constraints may also be applied to | is computed by the headend. The constraints may also be applied to | |||
| an explicit path where the headend is expected to validate that the | an explicit path where the headend is expected to validate that the | |||
| path expresses satisfies the specified constraints and the path is to | path expresses satisfies the specified constraints and the path is to | |||
| be invalidated by the headend when the constraints are no longer met | be invalidated by the headend when the constraints are no longer met | |||
| (e.g. due to topology changes). | (e.g. due to topology changes). | |||
| skipping to change at page 24, line 29 ¶ | skipping to change at page 27, line 11 ¶ | |||
| o RESERVED: 1 octet. SHOULD be set to 0 by originator and MUST be | o RESERVED: 1 octet. SHOULD be set to 0 by originator and MUST be | |||
| ignored by receiver. | ignored by receiver. | |||
| o sub-TLVs: optional sub-TLVs MAY be included in this TLV to | o sub-TLVs: optional sub-TLVs MAY be included in this TLV to | |||
| describe other constraints. | describe other constraints. | |||
| The following constraint sub-TLVs are defined for the SR CP | The following constraint sub-TLVs are defined for the SR CP | |||
| Constraints TLV. | Constraints TLV. | |||
| 6.4.1. SR Affinity Constraint | 6.6.1. SR Affinity Constraint | |||
| The SR Affinity Constraint sub-TLV is an optional sub-TLV that is | The SR Affinity Constraint sub-TLV is an optional sub-TLV that is | |||
| used to carry the affinity constraints [RFC2702] associated with the | used to carry the affinity constraints [RFC2702] associated with the | |||
| candidate path. The affinity is expressed in terms of Extended Admin | candidate path. The affinity is expressed in terms of Extended Admin | |||
| Group (EAG) as defined in [RFC7308]. The TLV has the following | Group (EAG) as defined in [RFC7308]. The TLV has the following | |||
| format: | 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| skipping to change at page 25, line 37 ¶ | skipping to change at page 28, line 19 ¶ | |||
| o Exclude-Any EAG : the bitmask used to represent the affinities to | o Exclude-Any EAG : the bitmask used to represent the affinities to | |||
| be excluded from the path. | be excluded from the path. | |||
| o Include-Any EAG : the bitmask used to represent the affinities to | o Include-Any EAG : the bitmask used to represent the affinities to | |||
| be included in the path. | be included in the path. | |||
| o Include-All EAG : the bitmask used to represent the all affinities | o Include-All EAG : the bitmask used to represent the all affinities | |||
| to be included in the path. | to be included in the path. | |||
| 6.4.2. SR SRLG Constraint | 6.6.2. SR SRLG Constraint | |||
| The SR SRLG Constraint sub-TLV is an optional sub-TLV that is used to | The SR SRLG Constraint sub-TLV is an optional sub-TLV that is used to | |||
| carry the Shared Risk Link Group (SRLG) values [RFC4202] that are to | carry the Shared Risk Link Group (SRLG) values [RFC4202] that are to | |||
| be excluded from the candidate path. The TLV has the following | be excluded from the candidate path. The TLV has the following | |||
| format: | format: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length | | | Type | Length | | |||
| skipping to change at page 26, line 12 ¶ | skipping to change at page 28, line 43 ¶ | |||
| where: | where: | |||
| o Type: 1209 | o Type: 1209 | |||
| o Length: variable, dependent on the number of SRLGs encoded. MUST | o Length: variable, dependent on the number of SRLGs encoded. MUST | |||
| be a multiple of 4 octets. | be a multiple of 4 octets. | |||
| o SRLG Values : One or more SRLG values (each of 4 octets). | o SRLG Values : One or more SRLG values (each of 4 octets). | |||
| 6.4.3. SR Bandwidth Constraint | 6.6.3. SR Bandwidth Constraint | |||
| The SR Bandwidth Constraint sub-TLV is an optional sub-TLV that is | The SR Bandwidth Constraint sub-TLV is an optional sub-TLV that is | |||
| used to indicate the desired bandwidth availability that needs to be | used to indicate the desired bandwidth availability that needs to be | |||
| ensured for the candidate path. The TLV has the following format: | ensured for the candidate path. The TLV has the following format: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length | | | Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| skipping to change at page 26, line 35 ¶ | skipping to change at page 29, line 22 ¶ | |||
| where: | where: | |||
| o Type: 1210 | o Type: 1210 | |||
| o Length: 4 octects | o Length: 4 octects | |||
| o Bandwidth : 4 octets which specify the desired bandwidth in unit | o Bandwidth : 4 octets which specify the desired bandwidth in unit | |||
| of bytes per second in IEEE floating point format. | of bytes per second in IEEE floating point format. | |||
| 6.4.4. SR Disjoint Group Constraint | 6.6.4. SR Disjoint Group Constraint | |||
| The SR Disjoint Group Constraint sub-TLV is an optional sub-TLV that | The SR Disjoint Group Constraint sub-TLV is an optional sub-TLV that | |||
| is used to carry the disjointness constraint associated with the | is used to carry the disjointness constraint associated with the | |||
| candidate path. The disjointness between two SR Policy Candidate | candidate path. The disjointness between two SR Policy Candidate | |||
| Paths is expressed by associating them with the same disjoint group | Paths is expressed by associating them with the same disjoint group | |||
| identifier and then specifying the type of disjointness required | identifier and then specifying the type of disjointness required | |||
| between their paths. The computation is expected to achieve the | between their paths. The computation is expected to achieve the | |||
| highest level of disjointness requested and when that is not possible | highest level of disjointness requested and when that is not possible | |||
| then fallback to a lesser level progressively based on the levels | then fallback to a lesser level progressively based on the levels | |||
| indicated. | indicated. | |||
| skipping to change at page 28, line 34 ¶ | skipping to change at page 31, line 18 ¶ | |||
| * X-Flag : Indicates that the disjointness constraint could not | * X-Flag : Indicates that the disjointness constraint could not | |||
| be achieved and hence path has been invalidated | be achieved and hence path has been invalidated | |||
| o RESERVED: 2 octets. SHOULD be set to 0 by originator and MUST be | o RESERVED: 2 octets. SHOULD be set to 0 by originator and MUST be | |||
| ignored by receiver. | ignored by receiver. | |||
| o Disjointness Group Identifier : 4 octet value that is the group | o Disjointness Group Identifier : 4 octet value that is the group | |||
| identifier for a set of disjoint paths | identifier for a set of disjoint paths | |||
| 6.5. SR Segment List | 6.7. SR Segment List | |||
| The SR Segment List TLV is used to report the SID-List(s) of a | The SR Segment List TLV is used to report the SID-List(s) of a | |||
| candidate path. The TLV has following format: | candidate path. The TLV has following format: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length | | | Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Flags | RESERVED | | | Flags | RESERVED | | |||
| skipping to change at page 30, line 44 ¶ | skipping to change at page 33, line 19 ¶ | |||
| ignored by receiver. | ignored by receiver. | |||
| o Weight: 4 octet field that indicates the weight associated with | o Weight: 4 octet field that indicates the weight associated with | |||
| the SID-List for weighted load-balancing. Refer Section 2.2 and | the SID-List for weighted load-balancing. Refer Section 2.2 and | |||
| 2.11 of [I-D.ietf-spring-segment-routing-policy]. | 2.11 of [I-D.ietf-spring-segment-routing-policy]. | |||
| o Sub-TLVs : variable and contains the ordered set of Segments and | o Sub-TLVs : variable and contains the ordered set of Segments and | |||
| any other optional attributes associated with the specific SID- | any other optional attributes associated with the specific SID- | |||
| List. | List. | |||
| The SR Segment sub-TLV (defined in Section 6.6) MUST be included as | The SR Segment sub-TLV (defined in Section 6.8) MUST be included as | |||
| an ordered set of sub-TLVs within the SR Segment List TLV when the | an ordered set of sub-TLVs within the SR Segment List TLV when the | |||
| SID-List is not empty. A SID-List may be empty in certain cases | SID-List is not empty. A SID-List may be empty in certain cases | |||
| (e.g. for a dynamic path) where the headend has not yet performed the | (e.g. for a dynamic path) where the headend has not yet performed the | |||
| computation and hence not derived the segments required for the path; | computation and hence not derived the segments required for the path; | |||
| in such cases, the SR Segment List TLV SHOULD NOT include any SR | in such cases, the SR Segment List TLV SHOULD NOT include any SR | |||
| Segment sub-TLVs. | Segment sub-TLVs. | |||
| 6.6. SR Segment | 6.8. SR Segment | |||
| The SR Segment sub-TLV describes a single segment in a SID-List. One | The SR Segment sub-TLV describes a single segment in a SID-List. One | |||
| or more instances of this sub-TLV in an ordered manner constitute a | or more instances of this sub-TLV in an ordered manner constitute a | |||
| SID-List for a SR Policy candidate path. It is a sub-TLV of the SR | SID-List for a SR Policy candidate path. It is a sub-TLV of the SR | |||
| Segment List TLV and has following format: | Segment List TLV and has following format: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length | | | Type | Length | | |||
| skipping to change at page 31, line 31 ¶ | skipping to change at page 34, line 4 ¶ | |||
| // Segment Descriptor (variable) // | // Segment Descriptor (variable) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // Sub-TLVs (variable) // | // Sub-TLVs (variable) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| where: | where: | |||
| o Type: 1206 | o Type: 1206 | |||
| o Length: variable | o Length: variable | |||
| o Segment Type : 1 octet which indicates the type of segment (refer | o Segment Type : 1 octet which indicates the type of segment (refer | |||
| Section 6.6.1 for details) | Section 6.8.1 for details) | |||
| o RESERVED: 1 octet. SHOULD be set to 0 by originator and MUST be | o RESERVED: 1 octet. SHOULD be set to 0 by originator and MUST be | |||
| ignored by receiver. | ignored by receiver. | |||
| o Flags: 2 octet field that indicates attribute and status of the | o Flags: 2 octet field that indicates attribute and status of the | |||
| Segment and its SID. The following bit positions are defined and | Segment and its SID. The following bit positions are defined and | |||
| the semantics are described in detail in | the semantics are described in detail in | |||
| [I-D.ietf-spring-segment-routing-policy]. Other bits SHOULD be | [I-D.ietf-spring-segment-routing-policy]. Other bits SHOULD be | |||
| cleared by originator and MUST be ignored by receiver. | cleared by originator and MUST be ignored by receiver. | |||
| skipping to change at page 32, line 37 ¶ | skipping to change at page 35, line 12 ¶ | |||
| are RESERVED and SHOULD be set to 0 by originator and MUST be | are RESERVED and SHOULD be set to 0 by originator and MUST be | |||
| ignored by the receiver. | ignored by the receiver. | |||
| 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Label | TC |S| TTL | | | Label | TC |S| TTL | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| o Segment Descriptor : variable size Segment descriptor based on the | o Segment Descriptor : variable size Segment descriptor based on the | |||
| type of segment (refer Section 6.6.1 for details) | type of segment (refer Section 6.8.1 for details) | |||
| o Sub-Sub-TLVs : variable and contains any other optional attributes | o Sub-Sub-TLVs : variable and contains any other optional attributes | |||
| associated with the specific SID-List. | associated with the specific segment. | |||
| Currently no Sub-Sub-TLV of the SR Segment sub-TLV is defined. | The SRv6 Endpoint Behavior TLV (1250) and the SRv6 SID Structure TLV | |||
| (1252) defined in [I-D.ietf-idr-bgpls-srv6-ext] are used as sub-sub- | ||||
| TLVs of the SR Segment sub-TLV to optionally indicate the SRv6 | ||||
| Endpoint behavior and SID structure when advertising the SRv6 | ||||
| specific segment types. | ||||
| 6.6.1. Segment Descriptors | 6.8.1. Segment Descriptors | |||
| [I-D.ietf-spring-segment-routing-policy] section 4 defines multiple | [I-D.ietf-spring-segment-routing-policy] section 4 defines multiple | |||
| types of segments and their description. This section defines the | types of segments and their description. This section defines the | |||
| encoding of the Segment Descriptors for each of those Segment types | encoding of the Segment Descriptors for each of those Segment types | |||
| to be used in the Segment sub-TLV describes previously in | to be used in the Segment sub-TLV describes previously in | |||
| Section 6.6. | Section 6.8. | |||
| The following types are currently defined: | The following types are currently defined: | |||
| +-------+--------------------------------------------------------------+ | +-------+--------------------------------------------------------------+ | |||
| | Type | Segment Description | | | Type | Segment Description | | |||
| +-------+--------------------------------------------------------------+ | +-------+--------------------------------------------------------------+ | |||
| | 0 | Invalid | | | 0 | Invalid | | |||
| | 1 | SR-MPLS Label | | | 1 | SR-MPLS Label | | |||
| | 2 | SRv6 SID as IPv6 address | | | 2 | SRv6 SID as IPv6 address | | |||
| | 3 | SR-MPLS Prefix SID as IPv4 Node Address | | | 3 | SR-MPLS Prefix SID as IPv4 Node Address | | |||
| skipping to change at page 33, line 30 ¶ | skipping to change at page 36, line 28 ¶ | |||
| | | Interface ID for Local & Remote nodes | | | | Interface ID for Local & Remote nodes | | |||
| | 8 | SR-MPLS Adjacency SID as pair of IPv6 Global Addresses for | | | 8 | SR-MPLS Adjacency SID as pair of IPv6 Global Addresses for | | |||
| | | the Local & Remote Interface | | | | the Local & Remote Interface | | |||
| | 9 | SRv6 END SID as IPv6 Node Global Address | | | 9 | SRv6 END SID as IPv6 Node Global Address | | |||
| | 10 | SRv6 END.X SID as pair of IPv6 Global Address & Interface ID | | | 10 | SRv6 END.X SID as pair of IPv6 Global Address & Interface ID | | |||
| | | for Local & Remote nodes | | | | for Local & Remote nodes | | |||
| | 11 | SRv6 END.X SID as pair of IPv6 Global Addresses for the | | | 11 | SRv6 END.X SID as pair of IPv6 Global Addresses for the | | |||
| | | Local & Remote Interface | | | | Local & Remote Interface | | |||
| +-------+--------------------------------------------------------------+ | +-------+--------------------------------------------------------------+ | |||
| 6.6.1.1. Type 1: SR-MPLS Label | 6.8.1.1. Type 1: SR-MPLS Label | |||
| The Segment is SR-MPLS type and is specified simply as the label. | The Segment is SR-MPLS type and is specified simply as the label. | |||
| The format of its Segment Descriptor is as follows: | The format of its Segment Descriptor is as follows: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| | Algorithm | | | Algorithm | | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| Where: | Where: | |||
| o Algorithm: 1 octet value that indicates the algorithm used for | o Algorithm: 1 octet value that indicates the algorithm used for | |||
| picking the SID. This is valid only when the A-flag has been set | picking the SID. This is valid only when the A-flag has been set | |||
| in the Segment TLV. | in the Segment TLV. | |||
| 6.6.1.2. Type 2: SRv6 SID | 6.8.1.2. Type 2: SRv6 SID | |||
| The Segment is SRv6 type and is specified simply as the SRv6 SID | The Segment is SRv6 type and is specified simply as the SRv6 SID | |||
| address. The format of its Segment Descriptor is as follows: | address. The format of its Segment Descriptor is as follows: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| | Algorithm | | | Algorithm | | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| Where: | Where: | |||
| o Algorithm: 1 octet value that indicates the algorithm used for | o Algorithm: 1 octet value that indicates the algorithm used for | |||
| picking the SID. This is valid only when the A-flag has been set | picking the SID. This is valid only when the A-flag has been set | |||
| in the Segment TLV. | in the Segment TLV. | |||
| 6.6.1.3. Type 3: SR-MPLS Prefix SID for IPv4 | 6.8.1.3. Type 3: SR-MPLS Prefix SID for IPv4 | |||
| The Segment is SR-MPLS Prefix SID type and is specified as an IPv4 | The Segment is SR-MPLS Prefix SID type and is specified as an IPv4 | |||
| node address. The format of its Segment Descriptor is as follows: | node address. The format of its Segment Descriptor is as follows: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| | Algorithm | | | Algorithm | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | IPv4 Node Address (4 octets) | | | IPv4 Node Address (4 octets) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Where: | Where: | |||
| o Algorithm: 1 octet value that indicates the algorithm used for | o Algorithm: 1 octet value that indicates the algorithm used for | |||
| picking the SID | picking the SID | |||
| o IPv4 Node Address: 4 octet value which carries the IPv4 address | o IPv4 Node Address: 4 octet value which carries the IPv4 address | |||
| associated with the node | associated with the node | |||
| 6.6.1.4. Type 4: SR-MPLS Prefix SID for IPv6 | 6.8.1.4. Type 4: SR-MPLS Prefix SID for IPv6 | |||
| The Segment is SR-MPLS Prefix SID type and is specified as an IPv6 | The Segment is SR-MPLS Prefix SID type and is specified as an IPv6 | |||
| global address. The format of its Segment Descriptor is as follows: | global address. The format of its Segment Descriptor is as follows: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| | Algorithm | | | Algorithm | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | IPv6 Node Global Address (16 octets) | | | IPv6 Node Global Address (16 octets) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Where: | Where: | |||
| o Algorithm: 1 octet value that indicates the algorithm used for | o Algorithm: 1 octet value that indicates the algorithm used for | |||
| picking the SID | picking the SID | |||
| o IPv6 Node Global Address: 16 octet value which carries the IPv6 | o IPv6 Node Global Address: 16 octet value which carries the IPv6 | |||
| global address associated with the node | global address associated with the node | |||
| 6.6.1.5. Type 5: SR-MPLS Adjacency SID for IPv4 with Interface ID | 6.8.1.5. Type 5: SR-MPLS Adjacency SID for IPv4 with Interface ID | |||
| The Segment is SR-MPLS Adjacency SID type and is specified as an IPv4 | The Segment is SR-MPLS Adjacency SID type and is specified as an IPv4 | |||
| node address along with the local interface ID on that node. The | node address along with the local interface ID on that node. The | |||
| format of its Segment Descriptor is as follows: | format of its Segment Descriptor is as follows: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | IPv4 Node Address (4 octets) | | | IPv4 Node Address (4 octets) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| skipping to change at page 35, line 33 ¶ | skipping to change at page 38, line 33 ¶ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Where: | Where: | |||
| o IPv4 Node Address: 4 octet value which carries the IPv4 address | o IPv4 Node Address: 4 octet value which carries the IPv4 address | |||
| associated with the node | associated with the node | |||
| o Local Interface ID : 4 octet value which carries the local | o Local Interface ID : 4 octet value which carries the local | |||
| interface ID of the node identified by the Node Address | interface ID of the node identified by the Node Address | |||
| 6.6.1.6. Type 6: SR-MPLS Adjacency SID for IPv4 with Interface Address | 6.8.1.6. Type 6: SR-MPLS Adjacency SID for IPv4 with Interface Address | |||
| The Segment is SR-MPLS Adjacency SID type and is specified as a pair | The Segment is SR-MPLS Adjacency SID type and is specified as a pair | |||
| of IPv4 local and remote addresses. The format of its Segment | of IPv4 local and remote addresses. The format of its Segment | |||
| Descriptor is as follows: | Descriptor is as follows: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | IPv4 Local Address (4 octets) | | | IPv4 Local Address (4 octets) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| skipping to change at page 36, line 10 ¶ | skipping to change at page 39, line 10 ¶ | |||
| Where: | Where: | |||
| o IPv4 Local Address: 4 octet value which carries the local IPv4 | o IPv4 Local Address: 4 octet value which carries the local IPv4 | |||
| address associated with the node | address associated with the node | |||
| o IPv4 Remote Address: 4 octet value which carries the remote IPv4 | o IPv4 Remote Address: 4 octet value which carries the remote IPv4 | |||
| address associated with the node's neighbor. This is optional and | address associated with the node's neighbor. This is optional and | |||
| MAY be set to 0 when not used (e.g. when identifying point-to- | MAY be set to 0 when not used (e.g. when identifying point-to- | |||
| point links). | point links). | |||
| 6.6.1.7. Type 7: SR-MPLS Adjacency SID for IPv6 with interface ID | 6.8.1.7. Type 7: SR-MPLS Adjacency SID for IPv6 with interface ID | |||
| The Segment is SR-MPLS Adjacency SID type and is specified as a pair | The Segment is SR-MPLS Adjacency SID type and is specified as a pair | |||
| of IPv6 global address and interface ID for local and remote nodes. | of IPv6 global address and interface ID for local and remote nodes. | |||
| The format of its Segment Descriptor is as follows: | The format of its Segment Descriptor is as follows: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | IPv6 Local Node Global Address (16 octets) | | | IPv6 Local Node Global Address (16 octets) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| skipping to change at page 36, line 47 ¶ | skipping to change at page 39, line 47 ¶ | |||
| o IPv6 Remote Node Global Address: 16 octet value which carries the | o IPv6 Remote Node Global Address: 16 octet value which carries the | |||
| IPv6 global address associated with the remote node. This is | IPv6 global address associated with the remote node. This is | |||
| optional and MAY be set to 0 when not used (e.g. when identifying | optional and MAY be set to 0 when not used (e.g. when identifying | |||
| point-to-point links). | point-to-point links). | |||
| o Remote Node Interface ID : 4 octet value which carries the | o Remote Node Interface ID : 4 octet value which carries the | |||
| interface ID of the remote node identified by the Remote Node | interface ID of the remote node identified by the Remote Node | |||
| Address. This is optional and MAY be set to 0 when not used (e.g. | Address. This is optional and MAY be set to 0 when not used (e.g. | |||
| when identifying point-to-point links). | when identifying point-to-point links). | |||
| 6.6.1.8. Type 8: SR-MPLS Adjacency SID for IPv6 with interface address | 6.8.1.8. Type 8: SR-MPLS Adjacency SID for IPv6 with interface address | |||
| The Segment is SR-MPLS Adjacency SID type and is specified as a pair | The Segment is SR-MPLS Adjacency SID type and is specified as a pair | |||
| of IPv6 Global addresses for local and remote interface addresses. | of IPv6 Global addresses for local and remote interface addresses. | |||
| The format of its Segment Descriptor is as follows: | The format of its Segment Descriptor is as follows: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Global IPv6 Local Interface Address (16 octets) | | | Global IPv6 Local Interface Address (16 octets) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| skipping to change at page 37, line 21 ¶ | skipping to change at page 40, line 21 ¶ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Where: | Where: | |||
| o IPv6 Local Address: 16 octet value which carries the local IPv6 | o IPv6 Local Address: 16 octet value which carries the local IPv6 | |||
| address associated with the node | address associated with the node | |||
| o IPv6 Remote Address: 16 octet value which carries the remote IPv6 | o IPv6 Remote Address: 16 octet value which carries the remote IPv6 | |||
| address associated with the node's neighbor | address associated with the node's neighbor | |||
| 6.6.1.9. Type 9: SRv6 END SID as IPv6 Node Address | 6.8.1.9. Type 9: SRv6 END SID as IPv6 Node Address | |||
| The Segment is SRv6 END SID type and is specified as an IPv6 global | The Segment is SRv6 END SID type and is specified as an IPv6 global | |||
| address. The format of its Segment Descriptor is as follows: | address. The format of its Segment Descriptor is as follows: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| | Algorithm | | | Algorithm | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | IPv6 Node Global Address (16 octets) | | | IPv6 Node Global Address (16 octets) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Where: | Where: | |||
| o Algorithm: 1 octet value that indicates the algorithm used for | o Algorithm: 1 octet value that indicates the algorithm used for | |||
| picking the SID | picking the SID | |||
| o IPv6 Node Global Address: 16 octet value which carries the IPv6 | o IPv6 Node Global Address: 16 octet value which carries the IPv6 | |||
| global address associated with the node | global address associated with the node | |||
| 6.6.1.10. Type 10: SRv6 END.X SID as interface ID | 6.8.1.10. Type 10: SRv6 END.X SID as interface ID | |||
| The Segment is SRv6 END.X SID type and is specified as a pair of IPv6 | The Segment is SRv6 END.X SID type and is specified as a pair of IPv6 | |||
| global address and interface ID for local and remote nodes. The | global address and interface ID for local and remote nodes. The | |||
| format of its Segment Descriptor is as follows: | format of its Segment Descriptor is as follows: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | IPv6 Local Node Global Address (16 octets) | | | IPv6 Local Node Global Address (16 octets) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| skipping to change at page 38, line 36 ¶ | skipping to change at page 41, line 36 ¶ | |||
| o IPv6 Remote Node Global Address: 16 octet value which carries the | o IPv6 Remote Node Global Address: 16 octet value which carries the | |||
| IPv6 global address associated with the remote node. This is | IPv6 global address associated with the remote node. This is | |||
| optional and MAY be set to 0 when not used (e.g. when identifying | optional and MAY be set to 0 when not used (e.g. when identifying | |||
| point-to-point links). | point-to-point links). | |||
| o Remote Node Interface ID : 4 octet value which carries the | o Remote Node Interface ID : 4 octet value which carries the | |||
| interface ID of the remote node identified by the Remote Node | interface ID of the remote node identified by the Remote Node | |||
| Address. This is optional and MAY be set to 0 when not used (e.g. | Address. This is optional and MAY be set to 0 when not used (e.g. | |||
| when identifying point-to-point links). | when identifying point-to-point links). | |||
| 6.6.1.11. Type 11: SRv6 END.X SID as interface address | 6.8.1.11. Type 11: SRv6 END.X SID as interface address | |||
| The Segment is SRv6 END.X SID type and is specified as a pair of IPv6 | The Segment is SRv6 END.X SID type and is specified as a pair of IPv6 | |||
| Global addresses for local and remote interface addresses. The | Global addresses for local and remote interface addresses. The | |||
| format of its Segment Descriptor is as follows: | format of its Segment Descriptor is as follows: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Global IPv6 Local Interface Address (16 octets) | | | Global IPv6 Local Interface Address (16 octets) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| skipping to change at page 39, line 11 ¶ | skipping to change at page 42, line 11 ¶ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Where: | Where: | |||
| o IPv6 Local Address: 16 octet value which carries the local IPv6 | o IPv6 Local Address: 16 octet value which carries the local IPv6 | |||
| address associated with the node | address associated with the node | |||
| o IPv6 Remote Address: 16 octet value which carries the remote IPv6 | o IPv6 Remote Address: 16 octet value which carries the remote IPv6 | |||
| address associated with the node's neighbor | address associated with the node's neighbor | |||
| 6.7. SR Segment List Metric | 6.9. SR Segment List Metric | |||
| The SR Segment List Metric sub-TLV describes the metric used for | The SR Segment List Metric sub-TLV describes the metric used for | |||
| computation of the SID-List. It is used to report the type of metric | computation of the SID-List. It is used to report the type of metric | |||
| used in the computation of a dynamic path either on the headend or | used in the computation of a dynamic path either on the headend or | |||
| when the path computation is delegated to a PCE/controller. When the | when the path computation is delegated to a PCE/controller. When the | |||
| path computation is done on the headend, it is also used to report | path computation is done on the headend, it is also used to report | |||
| the calculated metric for the path. | the calculated metric for the path. | |||
| It is a sub-TLV of the SR Segment List TLV and has following format: | It is a sub-TLV of the SR Segment List TLV and has following format: | |||
| skipping to change at page 41, line 28 ¶ | skipping to change at page 44, line 28 ¶ | |||
| to to encode the related PCEP objects corresponding to the LSP as | to to encode the related PCEP objects corresponding to the LSP as | |||
| defined in Section 5.2. | defined in Section 5.2. | |||
| For SR Policies, the NLRI descriptor TLV as specified in Section 4.5 | For SR Policies, the NLRI descriptor TLV as specified in Section 4.5 | |||
| is used. An SR Policy candidate path (CP) may be instantiated on the | is used. An SR Policy candidate path (CP) may be instantiated on the | |||
| headend node via a local configuration, PCEP or BGP SR Policy | headend node via a local configuration, PCEP or BGP SR Policy | |||
| signaling and this is indicated via the SR Protocol Origin. Then the | signaling and this is indicated via the SR Protocol Origin. Then the | |||
| SR Policy Candidate Path's attribute and state is encoded in the BGP- | SR Policy Candidate Path's attribute and state is encoded in the BGP- | |||
| LS Attribute field as SR Policy State TLVs and sub-TLVs as described | LS Attribute field as SR Policy State TLVs and sub-TLVs as described | |||
| in Section 6. The SR Candidate Path State TLV as defined in | in Section 6. The SR Candidate Path State TLV as defined in | |||
| Section 6.2 is included to report the state of the CP. The SR BSID | Section 6.3 is included to report the state of the CP. The SR BSID | |||
| TLV as defined in Section 6.1 is included to report the BSID of the | TLV as defined in Section 6.1 or Section 6.2 is included to report | |||
| CP when one is either provisioned or allocated by the headend. The | the BSID of the CP when one is either specified or allocated by the | |||
| constraints for the SR Policy Candidate Path are reported using the | headend. The constraints for the SR Policy Candidate Path are | |||
| SR Candidate Path Constraints TLV as described in Section 6.4.The SR | reported using the SR Candidate Path Constraints TLV as described in | |||
| Segment List TLV is included for each of the SID-List(s) associated | Section 6.6.The SR Segment List TLV is included for each of the SID- | |||
| with the CP. Each SR Segment List TLV in turn includes SR Segment | List(s) associated with the CP. Each SR Segment List TLV in turn | |||
| sub-TLV(s) to report the segment(s) and their status. The SR Segment | includes SR Segment sub-TLV(s) to report the segment(s) and their | |||
| List Metric sub-TLV is used to report the metric values and | status. The SR Segment List Metric sub-TLV is used to report the | |||
| constraints for the specific SID List. | metric values and constraints for the specific SID List. | |||
| When the SR Policy CP is setup with the help of PCEP signaling then | When the SR Policy CP is setup with the help of PCEP signaling then | |||
| another MPLS-TE Policy State TLV MAY be used to to encode the related | another MPLS-TE Policy State TLV MAY be used to to encode the related | |||
| PCEP objects corresponding to the LSP as defined in Section 5.2 | PCEP objects corresponding to the LSP as defined in Section 5.2 | |||
| specifically to report information and status that is not covered by | specifically to report information and status that is not covered by | |||
| the defined TLVs under Section 6. In the event of a conflict of | the defined TLVs under Section 6. In the event of a conflict of | |||
| information, the receiver MUST prefer the information originated via | information, the receiver MUST prefer the information originated via | |||
| TLVs defined in Section 6 over the PCEP objects reported via the TE | TLVs defined in Section 6 over the PCEP objects reported via the TE | |||
| Policy State TLV. | Policy State TLV. | |||
| skipping to change at page 43, line 32 ¶ | skipping to change at page 46, line 32 ¶ | |||
| | 1202 | SR CP State TLV | this document | | | 1202 | SR CP State TLV | this document | | |||
| | 1203 | SR CP Name TLV | this document | | | 1203 | SR CP Name TLV | this document | | |||
| | 1204 | SR CP Constraints TLV | this document | | | 1204 | SR CP Constraints TLV | this document | | |||
| | 1205 | SR Segment List TLV | this document | | | 1205 | SR Segment List TLV | this document | | |||
| | 1206 | SR Segment sub-TLV | this document | | | 1206 | SR Segment sub-TLV | this document | | |||
| | 1207 | SR Segment List Metric sub-TLV | this document | | | 1207 | SR Segment List Metric sub-TLV | this document | | |||
| | 1208 | SR Affinity Constraint sub-TLV | this document | | | 1208 | SR Affinity Constraint sub-TLV | this document | | |||
| | 1209 | SR SRLG Constraint sub-TLV | this document | | | 1209 | SR SRLG Constraint sub-TLV | this document | | |||
| | 1210 | SR Bandwidth Constraint sub-TLV | this document | | | 1210 | SR Bandwidth Constraint sub-TLV | this document | | |||
| | 1211 | SR Disjoint Group Constraint sub-TLV | this document | | | 1211 | SR Disjoint Group Constraint sub-TLV | this document | | |||
| | TBD | SRv6 BSID TLV | this document | | ||||
| | TBD | SR Policy Name TLV | this document | | ||||
| +----------+----------------------------------------+---------------+ | +----------+----------------------------------------+---------------+ | |||
| 9.4. BGP-LS SR Policy Protocol Origin | 9.4. BGP-LS SR Policy Protocol Origin | |||
| This document requests IANA to maintain a new sub-registry under | This document requests IANA to maintain a new sub-registry under | |||
| "Border Gateway Protocol - Link State (BGP-LS) Parameters". The new | "Border Gateway Protocol - Link State (BGP-LS) Parameters". The new | |||
| registry is called "SR Policy Protocol Origin" and contains the | registry is called "SR Policy Protocol Origin" and contains the | |||
| codepoints allocated to the "Protocol Origin" field defined in | codepoints allocated to the "Protocol Origin" field defined in | |||
| Section 4.5. The registry contains the following codepoints, with | Section 4.5. The registry contains the following codepoints, with | |||
| initial values, to be assigned by IANA: | initial values, to be assigned by IANA: | |||
| skipping to change at page 44, line 45 ¶ | skipping to change at page 47, line 45 ¶ | |||
| | 1 | MPLS-IPv4 | | | 1 | MPLS-IPv4 | | |||
| | 2 | MPLS-IPv6 | | | 2 | MPLS-IPv6 | | |||
| +----------+------------------+ | +----------+------------------+ | |||
| 9.7. BGP-LS SR Segment Descriptors | 9.7. BGP-LS SR Segment Descriptors | |||
| This document requests IANA to maintain a new sub-registry under | This document requests IANA to maintain a new sub-registry under | |||
| "Border Gateway Protocol - Link State (BGP-LS) Parameters". The new | "Border Gateway Protocol - Link State (BGP-LS) Parameters". The new | |||
| registry is called "SR Segment Descriptor Types" and contains the | registry is called "SR Segment Descriptor Types" and contains the | |||
| codepoints allocated to the "Segment Type" field defined in | codepoints allocated to the "Segment Type" field defined in | |||
| Section 6.6 and described in Section 6.6.1. The registry contains | Section 6.8 and described in Section 6.8.1. The registry contains | |||
| the following codepoints, with initial values, to be assigned by | the following codepoints, with initial values, to be assigned by | |||
| IANA: | IANA: | |||
| +-------+--------------------------------------------------------------+ | +-------+--------------------------------------------------------------+ | |||
| | Code | Segment Description | | | Code | Segment Description | | |||
| | Point | | | | Point | | | |||
| +-------+--------------------------------------------------------------+ | +-------+--------------------------------------------------------------+ | |||
| | 0 | Invalid | | | 0 | Invalid | | |||
| | 1 | SR-MPLS Label | | | 1 | SR-MPLS Label | | |||
| | 2 | SRv6 SID as IPv6 address | | | 2 | SRv6 SID as IPv6 address | | |||
| skipping to change at page 45, line 34 ¶ | skipping to change at page 48, line 34 ¶ | |||
| | | for Local & Remote nodes | | | | for Local & Remote nodes | | |||
| | 11 | SRv6 END.X SID as pair of IPv6 Global Addresses for the | | | 11 | SRv6 END.X SID as pair of IPv6 Global Addresses for the | | |||
| | | Local & Remote Interface | | | | Local & Remote Interface | | |||
| +-------+--------------------------------------------------------------+ | +-------+--------------------------------------------------------------+ | |||
| 9.8. BGP-LS Metric Type | 9.8. BGP-LS Metric Type | |||
| This document requests IANA to maintain a new sub-registry under | This document requests IANA to maintain a new sub-registry under | |||
| "Border Gateway Protocol - Link State (BGP-LS) Parameters". The new | "Border Gateway Protocol - Link State (BGP-LS) Parameters". The new | |||
| registry is called "Metric Type" and contains the codepoints | registry is called "Metric Type" and contains the codepoints | |||
| allocated to the "metric type" field defined in Section 6.7. The | allocated to the "metric type" field defined in Section 6.9. The | |||
| registry contains the following codepoints, with initial values, to | registry contains the following codepoints, with initial values, to | |||
| be assigned by IANA: | be assigned by IANA: | |||
| +------------+-----------------------------------------+ | +------------+-----------------------------------------+ | |||
| | Code Point | Metric Type | | | Code Point | Metric Type | | |||
| +------------+-----------------------------------------+ | +------------+-----------------------------------------+ | |||
| | 0 | IGP Metric | | | 0 | IGP Metric | | |||
| | 1 | Min Unidirectional Link Delay [RFC7471] | | | 1 | Min Unidirectional Link Delay [RFC7471] | | |||
| | 2 | TE Metric [RFC3630] | | | 2 | TE Metric [RFC3630] | | |||
| +------------+-----------------------------------------+ | +------------+-----------------------------------------+ | |||
| skipping to change at page 46, line 30 ¶ | skipping to change at page 49, line 30 ¶ | |||
| 13. References | 13. References | |||
| 13.1. Normative References | 13.1. Normative References | |||
| [I-D.ietf-idr-bgpls-segment-routing-epe] | [I-D.ietf-idr-bgpls-segment-routing-epe] | |||
| Previdi, S., Talaulikar, K., Filsfils, C., Patel, K., Ray, | Previdi, S., Talaulikar, K., Filsfils, C., Patel, K., Ray, | |||
| S., and J. Dong, "BGP-LS extensions for Segment Routing | S., and J. Dong, "BGP-LS extensions for Segment Routing | |||
| BGP Egress Peer Engineering", draft-ietf-idr-bgpls- | BGP Egress Peer Engineering", draft-ietf-idr-bgpls- | |||
| segment-routing-epe-19 (work in progress), May 2019. | segment-routing-epe-19 (work in progress), May 2019. | |||
| [I-D.ietf-idr-bgpls-srv6-ext] | ||||
| Dawra, G., Filsfils, C., Talaulikar, K., Chen, M., | ||||
| Bernier, D., and B. Decraene, "BGP Link State Extensions | ||||
| for SRv6", draft-ietf-idr-bgpls-srv6-ext-07 (work in | ||||
| progress), March 2021. | ||||
| [I-D.ietf-spring-segment-routing-policy] | [I-D.ietf-spring-segment-routing-policy] | |||
| Filsfils, C., Talaulikar, K., Voyer, D., Bogdanov, A., and | Filsfils, C., Talaulikar, K., Voyer, D., Bogdanov, A., and | |||
| P. Mattes, "Segment Routing Policy Architecture", draft- | P. Mattes, "Segment Routing Policy Architecture", draft- | |||
| ietf-spring-segment-routing-policy-08 (work in progress), | ietf-spring-segment-routing-policy-11 (work in progress), | |||
| July 2020. | April 2021. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC2205] Braden, R., Ed., Zhang, L., Berson, S., Herzog, S., and S. | [RFC2205] Braden, R., Ed., Zhang, L., Berson, S., Herzog, S., and S. | |||
| Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1 | Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1 | |||
| Functional Specification", RFC 2205, DOI 10.17487/RFC2205, | Functional Specification", RFC 2205, DOI 10.17487/RFC2205, | |||
| September 1997, <https://www.rfc-editor.org/info/rfc2205>. | September 1997, <https://www.rfc-editor.org/info/rfc2205>. | |||
| skipping to change at page 48, line 9 ¶ | skipping to change at page 51, line 15 ¶ | |||
| [RFC7752] Gredler, H., Ed., Medved, J., Previdi, S., Farrel, A., and | [RFC7752] Gredler, H., Ed., Medved, J., Previdi, S., Farrel, A., and | |||
| S. Ray, "North-Bound Distribution of Link-State and | S. Ray, "North-Bound Distribution of Link-State and | |||
| Traffic Engineering (TE) Information Using BGP", RFC 7752, | Traffic Engineering (TE) Information Using BGP", RFC 7752, | |||
| DOI 10.17487/RFC7752, March 2016, | DOI 10.17487/RFC7752, March 2016, | |||
| <https://www.rfc-editor.org/info/rfc7752>. | <https://www.rfc-editor.org/info/rfc7752>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [RFC8986] Filsfils, C., Ed., Camarillo, P., Ed., Leddy, J., Voyer, | ||||
| D., Matsushima, S., and Z. Li, "Segment Routing over IPv6 | ||||
| (SRv6) Network Programming", RFC 8986, | ||||
| DOI 10.17487/RFC8986, February 2021, | ||||
| <https://www.rfc-editor.org/info/rfc8986>. | ||||
| 13.2. Informative References | 13.2. Informative References | |||
| [RFC2702] Awduche, D., Malcolm, J., Agogbua, J., O'Dell, M., and J. | [RFC2702] Awduche, D., Malcolm, J., Agogbua, J., O'Dell, M., and J. | |||
| McManus, "Requirements for Traffic Engineering Over MPLS", | McManus, "Requirements for Traffic Engineering Over MPLS", | |||
| RFC 2702, DOI 10.17487/RFC2702, September 1999, | RFC 2702, DOI 10.17487/RFC2702, September 1999, | |||
| <https://www.rfc-editor.org/info/rfc2702>. | <https://www.rfc-editor.org/info/rfc2702>. | |||
| [RFC3630] Katz, D., Kompella, K., and D. Yeung, "Traffic Engineering | [RFC3630] Katz, D., Kompella, K., and D. Yeung, "Traffic Engineering | |||
| (TE) Extensions to OSPF Version 2", RFC 3630, | (TE) Extensions to OSPF Version 2", RFC 3630, | |||
| DOI 10.17487/RFC3630, September 2003, | DOI 10.17487/RFC3630, September 2003, | |||
| End of changes. 49 change blocks. | ||||
| 90 lines changed or deleted | 221 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||