draft-ietf-ospf-segment-routing-msd-11.txt | draft-ietf-ospf-segment-routing-msd-12.txt | |||
---|---|---|---|---|
OSPF Working Group J. Tantsura | OSPF Working Group J. Tantsura | |||
Internet-Draft Nuage Networks | Internet-Draft Nuage Networks | |||
Intended status: Standards Track U. Chunduri | Intended status: Standards Track U. Chunduri | |||
Expires: November 8, 2018 Huawei Technologies | Expires: November 10, 2018 Huawei Technologies | |||
S. Aldrin | S. Aldrin | |||
Google, Inc | Google, Inc | |||
P. Psenak | P. Psenak | |||
Cisco Systems | Cisco Systems | |||
May 07, 2018 | May 09, 2018 | |||
Signaling MSD (Maximum SID Depth) using OSPF | Signaling MSD (Maximum SID Depth) using OSPF | |||
draft-ietf-ospf-segment-routing-msd-11 | draft-ietf-ospf-segment-routing-msd-12 | |||
Abstract | Abstract | |||
This document defines a way for an OSPF Router to advertise multiple | This document defines a way for an OSPF Router to advertise multiple | |||
types of supported Maximum SID Depths (MSDs) at node and/or link | types of supported Maximum SID Depths (MSDs) at node and/or link | |||
granularity. Such advertisements allow entities (e.g., centralized | granularity. Such advertisements allow entities (e.g., centralized | |||
controllers) to determine whether a particular SID stack can be | controllers) to determine whether a particular SID stack can be | |||
supported in a given network. This document defines only one type of | supported in a given network. This document defines only one type of | |||
MSD, but defines an encoding that can support other MSD types. Here | MSD, but defines an encoding that can support other MSD types. Here | |||
the term OSPF means both OSPFv2 and OSPFv3. | the term OSPF means both OSPFv2 and OSPFv3. | |||
skipping to change at page 1, line 41 ¶ | skipping to change at page 1, line 41 ¶ | |||
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 November 8, 2018. | This Internet-Draft will expire on November 10, 2018. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2018 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
skipping to change at page 2, line 22 ¶ | skipping to change at page 2, line 22 ¶ | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
1.1. Conventions used in this document . . . . . . . . . . . . 3 | 1.1. Conventions used in this document . . . . . . . . . . . . 3 | |||
1.1.1. Terminology . . . . . . . . . . . . . . . . . . . . . 3 | 1.1.1. Terminology . . . . . . . . . . . . . . . . . . . . . 3 | |||
1.2. Requirements Language . . . . . . . . . . . . . . . . . . 4 | 1.2. Requirements Language . . . . . . . . . . . . . . . . . . 4 | |||
2. Node MSD Advertisement . . . . . . . . . . . . . . . . . . . 4 | 2. Node MSD Advertisement . . . . . . . . . . . . . . . . . . . 4 | |||
3. Link MSD sub-TLV . . . . . . . . . . . . . . . . . . . . . . 5 | 3. Link MSD sub-TLV . . . . . . . . . . . . . . . . . . . . . . 5 | |||
4. Using Node and Link MSD Advertisements . . . . . . . . . . . 6 | 4. Using Node and Link MSD Advertisements . . . . . . . . . . . 6 | |||
5. Base MPLS Imposition MSD . . . . . . . . . . . . . . . . . . 6 | 5. Base MPLS Imposition MSD . . . . . . . . . . . . . . . . . . 6 | |||
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 | |||
7. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | |||
8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 7 | 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 7 | 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 8 | |||
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
10.1. Normative References . . . . . . . . . . . . . . . . . . 7 | 10.1. Normative References . . . . . . . . . . . . . . . . . . 8 | |||
10.2. Informative References . . . . . . . . . . . . . . . . . 8 | 10.2. Informative References . . . . . . . . . . . . . . . . . 9 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
1. Introduction | 1. Introduction | |||
When Segment Routing(SR) paths are computed by a centralized | When Segment Routing(SR) paths are computed by a centralized | |||
controller, it is critical that the controller learns the Maximum SID | controller, it is critical that the controller learns the Maximum SID | |||
Depth(MSD) that can be imposed at each node/link on a given SR path | Depth(MSD) that can be imposed at each node/link on a given SR path | |||
to insure that the SID stack depth of a computed path doesn't exceed | to insure that the SID stack depth of a computed path doesn't exceed | |||
the number of SIDs the node is capable of imposing. | the number of SIDs the node is capable of imposing. | |||
skipping to change at page 4, line 37 ¶ | skipping to change at page 4, line 37 ¶ | |||
| MSD Type and Value ... | | MSD Type and Value ... | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ... | |||
Figure 1: Node MSD TLV | Figure 1: Node MSD TLV | |||
The Type: TBD1 | The Type: TBD1 | |||
Length: variable (minimum of 2, multiple of 2 octets) and represents | Length: variable (minimum of 2, multiple of 2 octets) and represents | |||
the total length of value field. | the total length of value field. | |||
Value: consists of one or more pairs of a 1 octet sub-type (IANA | Value: consists of one or more pairs of a 1 octet type (IANA | |||
Registry) and 1 octet value. | Registry) and 1 octet value. | |||
MSD Type 1 (IANA Section), MSD and the Value field contains the MSD | MSD Type 1 (IANA Section), MSD and the Value field contains the MSD | |||
of the originating router. Node MSD is a number in the range of | of the originating router. Node MSD is a number in the range of | |||
0-255. 0 represents lack of the ability to impose MSD stack of any | 0-255. 0 represents lack of the ability to impose MSD stack of any | |||
depth; any other value represents that of the node. This value | depth; any other value represents that of the node. This value | |||
SHOULD represent the minimum value supported by a node. | SHOULD represent the minimum value supported by a node. | |||
Other MSD Types are reserved for future extensions. | Other MSD Types are reserved for future extensions. | |||
This TLV is applicable to OSPFv2 and to OSPFv3 [RFC5838] and is | This TLV is applicable to OSPFv2 and to OSPFv3 [RFC5838] and is | |||
optional. The scope of the advertisement is specific to the | optional. The scope of the advertisement is specific to the | |||
deployment. | deployment. | |||
When multiple Node MSD TLVs are received from a given router, the | ||||
receiver MUST use the first occurrence of the TLV in the Router | ||||
Information LSA. If the Node MSD TLV appears in multiple Router | ||||
Information LSAs that have different flooding scopes, the Node MSD | ||||
TLV in the Router Information LSA with the area-scoped flooding scope | ||||
MUST be used. If the Node MSD TLV appears in multiple Router | ||||
Information LSAs that have the same flooding scope, the Node MSD TLV | ||||
in the Router Information (RI) LSA with the numerically smallest | ||||
Instance ID MUST be used and subsequent instances of the Node MSD TLV | ||||
MUST be ignored. The RI LSA can be advertised at any of the defined | ||||
opaque flooding scopes (link, area, or Autonomous System (AS)). For | ||||
the purpose of Node MSD TLV advertisement, area-scoped flooding is | ||||
REQUIRED. | ||||
3. Link MSD sub-TLV | 3. Link MSD sub-TLV | |||
The link sub-TLV is defined to carry the MSD of the interface | The link sub-TLV is defined to carry the MSD of the interface | |||
associated with the link. MSD values may be learned via a hardware | associated with the link. MSD values may be learned via a hardware | |||
API or may be provisioned. | API or may be provisioned. | |||
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 5, line 45 ¶ | skipping to change at page 6, line 13 ¶ | |||
Registry) and 1 octet value. | Registry) and 1 octet value. | |||
MSD Type 1 (IANA Section), MSD and the Value field contains Link MSD | MSD Type 1 (IANA Section), MSD and the Value field contains Link MSD | |||
of the router originating the corresponding LSA as specified for | of the router originating the corresponding LSA as specified for | |||
OSPFv2 and OSPFv3. Link MSD is a number in the range of 0-255. 0 | OSPFv2 and OSPFv3. Link MSD is a number in the range of 0-255. 0 | |||
represents lack of the ability to impose MSD stack of any depth; any | represents lack of the ability to impose MSD stack of any depth; any | |||
other value represents that of the particular link MSD value. | other value represents that of the particular link MSD value. | |||
Other MSD Types are reserved for future extensions. | Other MSD Types are reserved for future extensions. | |||
If these TLVs are advertised multiple times, only the first instance | If this TLV is advertised multiple times in the same OSPFv2 Extended | |||
of the TLV is used by receiving OSPF routers. This situation SHOULD | Link Opaque LSA, only the first instance of the TLV is used by | |||
be logged as an error. | receiving OSPFv2 routers. This situation SHOULD be logged as an | |||
error. | ||||
If these TLV is advertised multiple times for the same link in | If this TLV is advertised multiple times for the same link in | |||
different LSAs originated by the same OSPF router, the TLV with the | different OSPFv2 Extended Link Opaque LSAs originated by the same | |||
smallest Opaque ID/Link State ID is used by receiving OSPF routers. | OSPFv2 router, the OSPFv2 Extended Link TLV in the OSPFv2 Extended | |||
This situation MAY be logged as a warning. | Link Opaque LSA with the smallest Opaque ID is used by receiving | |||
OSPFv2 routers. This situation may be logged as a warning. | ||||
4. Using Node and Link MSD Advertisements | 4. Using Node and Link MSD Advertisements | |||
When Link MSD is present for a given MSD type, the value of the Link | When Link MSD is present for a given MSD type, the value of the Link | |||
MSD MUST take preference over the Node MSD. When a Link MSD type is | MSD MUST take preference over the Node MSD. When a Link MSD type is | |||
not signalled but the Node MSD type is, then the value of that Link | not signalled but the Node MSD type is, then the value of that Link | |||
MSD type MUST be considered as the corresponding Node MSD type value. | MSD type MUST be considered as the corresponding Node MSD type value. | |||
In order to increase flooding efficiency, it is RECOMMENDED, that | In order to increase flooding efficiency, it is RECOMMENDED, that | |||
routers with homogenous link MSD values advertise just the Node MSD | routers with homogenous link MSD values advertise just the Node MSD | |||
value. | value. | |||
skipping to change at page 6, line 28 ¶ | skipping to change at page 6, line 45 ¶ | |||
for a given MSD type is specific to the MSD type. Generally it can | for a given MSD type is specific to the MSD type. Generally it can | |||
only be inferred that the advertising node does not support | only be inferred that the advertising node does not support | |||
advertisement of that MSD type. However, in some cases the lack of | advertisement of that MSD type. However, in some cases the lack of | |||
advertisement might imply that the functionality associated with the | advertisement might imply that the functionality associated with the | |||
MSD type is not supported. The correct interpretation MUST be | MSD type is not supported. The correct interpretation MUST be | |||
specified when an MSD type is defined. | specified when an MSD type is defined. | |||
5. Base MPLS Imposition MSD | 5. Base MPLS Imposition MSD | |||
The Base MPLS Imposition MSD (BMI-MSD) signals the total number of | The Base MPLS Imposition MSD (BMI-MSD) signals the total number of | |||
MPLS labels a node is capable of imposing, including any service/ | MPLS labels a node is capable of imposing, including all | |||
transport labels. | service/transport/special labels. | |||
Absence of BMI-MSD advertisements indicates solely that the | Absence of BMI-MSD advertisements indicates solely that the | |||
advertising node does not support advertisement of this capability. | advertising node does not support advertisement of this capability. | |||
6. IANA Considerations | 6. IANA Considerations | |||
This document requests IANA to allocate TLV type (TBD1) from the OSPF | This document requests IANA to allocate TLV type (TBD1) from the OSPF | |||
Router Information (RI) TLVs Registry as defined by [RFC4970]. IANA | Router Information (RI) TLVs Registry as defined by [RFC4970]. IANA | |||
has allocated the value 12 through the early assignment process. | has allocated the value 12 through the early assignment process. | |||
Also, this document requests IANA to allocate a sub-TLV type (TBD2) | Also, this document requests IANA to allocate a sub-TLV type (TBD2) | |||
skipping to change at page 7, line 17 ¶ | skipping to change at page 7, line 36 ¶ | |||
0 Reserved This document | 0 Reserved This document | |||
1 Base MPLS Imposition MSD This document | 1 Base MPLS Imposition MSD This document | |||
2-250 Unassigned This document | 2-250 Unassigned This document | |||
251-254 Experimental This document | 251-254 Experimental This document | |||
255 Reserved This document | 255 Reserved This document | |||
Figure 3: MSD Types Codepoints Registry | Figure 3: MSD Types Codepoints Registry | |||
7. Security Considerations | 7. Security Considerations | |||
Security concerns for OSPF are addressed in [RFC7474] and [RFC5310]. | Security concerns for OSPF are addressed in [RFC7474]. Further | |||
Further security analysis for OSPF protocol is done in [RFC6853] | security analysis for OSPF protocol is done in [RFC6863] including | |||
including analysis of both the above documents. Security | analysis of both the above documents. Security considerations, as | |||
considerations, as specified by [RFC7770] are applicable to this | specified by [RFC7770], [RFC7684] and [RFC8362] are applicable to | |||
document. | this document. | |||
Advertisement of the additional information defined in this document | Advertisement of an incorrect MSD value may result: in a path | |||
that is false, e.g. MSD that is incorrect may result: in a path | ||||
computation failing and the service unavailable or instantiation of a | computation failing and the service unavailable or instantiation of a | |||
path that can't be supported by the head-end (the node performing the | path that can't be supported by the head-end (the node performing the | |||
imposition). | imposition). | |||
8. Contributors | 8. Contributors | |||
The following people contributed to this document: | The following people contributed to this document: | |||
Les Ginsberg | Les Ginsberg | |||
Email: ginsberg@cisco.com | Email: ginsberg@cisco.com | |||
9. Acknowledgements | 9. Acknowledgements | |||
The authors would like to thank Acee Lindem, Stephane Litkowski and | The authors would like to thank Acee Lindem, Ketan Talaulikar, | |||
Bruno Decraene for their reviews and valuable comments. | Stephane Litkowski and Bruno Decraene for their reviews and valuable | |||
comments. | ||||
10. References | 10. References | |||
10.1. Normative References | 10.1. Normative References | |||
[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>. | |||
[RFC4970] Lindem, A., Ed., Shen, N., Vasseur, JP., Aggarwal, R., and | [RFC4970] Lindem, A., Ed., Shen, N., Vasseur, JP., Aggarwal, R., and | |||
S. Shaffer, "Extensions to OSPF for Advertising Optional | S. Shaffer, "Extensions to OSPF for Advertising Optional | |||
Router Capabilities", RFC 4970, DOI 10.17487/RFC4970, July | Router Capabilities", RFC 4970, DOI 10.17487/RFC4970, July | |||
2007, <https://www.rfc-editor.org/info/rfc4970>. | 2007, <https://www.rfc-editor.org/info/rfc4970>. | |||
[RFC7474] Bhatia, M., Hartman, S., Zhang, D., and A. Lindem, Ed., | ||||
"Security Extension for OSPFv2 When Using Manual Key | ||||
Management", RFC 7474, DOI 10.17487/RFC7474, April 2015, | ||||
<https://www.rfc-editor.org/info/rfc7474>. | ||||
[RFC7684] Psenak, P., Gredler, H., Shakir, R., Henderickx, W., | ||||
Tantsura, J., and A. Lindem, "OSPFv2 Prefix/Link Attribute | ||||
Advertisement", RFC 7684, DOI 10.17487/RFC7684, November | ||||
2015, <https://www.rfc-editor.org/info/rfc7684>. | ||||
[RFC7770] Lindem, A., Ed., Shen, N., Vasseur, JP., Aggarwal, R., and | [RFC7770] Lindem, A., Ed., Shen, N., Vasseur, JP., Aggarwal, R., and | |||
S. Shaffer, "Extensions to OSPF for Advertising Optional | S. Shaffer, "Extensions to OSPF for Advertising Optional | |||
Router Capabilities", RFC 7770, DOI 10.17487/RFC7770, | Router Capabilities", RFC 7770, DOI 10.17487/RFC7770, | |||
February 2016, <https://www.rfc-editor.org/info/rfc7770>. | February 2016, <https://www.rfc-editor.org/info/rfc7770>. | |||
[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>. | |||
[RFC8362] Lindem, A., Roy, A., Goethals, D., Reddy Vallem, V., and | [RFC8362] Lindem, A., Roy, A., Goethals, D., Reddy Vallem, V., and | |||
skipping to change at page 8, line 49 ¶ | skipping to change at page 9, line 30 ¶ | |||
Sivabalan, S., Filsfils, C., Tantsura, J., Henderickx, W., | Sivabalan, S., Filsfils, C., Tantsura, J., Henderickx, W., | |||
and J. Hardwick, "PCEP Extensions for Segment Routing", | and J. Hardwick, "PCEP Extensions for Segment Routing", | |||
draft-ietf-pce-segment-routing-11 (work in progress), | draft-ietf-pce-segment-routing-11 (work in progress), | |||
November 2017. | November 2017. | |||
[RFC5838] Lindem, A., Ed., Mirtorabi, S., Roy, A., Barnes, M., and | [RFC5838] Lindem, A., Ed., Mirtorabi, S., Roy, A., Barnes, M., and | |||
R. Aggarwal, "Support of Address Families in OSPFv3", | R. Aggarwal, "Support of Address Families in OSPFv3", | |||
RFC 5838, DOI 10.17487/RFC5838, April 2010, | RFC 5838, DOI 10.17487/RFC5838, April 2010, | |||
<https://www.rfc-editor.org/info/rfc5838>. | <https://www.rfc-editor.org/info/rfc5838>. | |||
[RFC7684] Psenak, P., Gredler, H., Shakir, R., Henderickx, W., | [RFC6863] Hartman, S. and D. Zhang, "Analysis of OSPF Security | |||
Tantsura, J., and A. Lindem, "OSPFv2 Prefix/Link Attribute | According to the Keying and Authentication for Routing | |||
Advertisement", RFC 7684, DOI 10.17487/RFC7684, November | Protocols (KARP) Design Guide", RFC 6863, | |||
2015, <https://www.rfc-editor.org/info/rfc7684>. | DOI 10.17487/RFC6863, March 2013, | |||
<https://www.rfc-editor.org/info/rfc6863>. | ||||
[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>. | |||
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | |||
Writing an IANA Considerations Section in RFCs", BCP 26, | Writing an IANA Considerations Section in RFCs", BCP 26, | |||
RFC 8126, DOI 10.17487/RFC8126, June 2017, | RFC 8126, DOI 10.17487/RFC8126, June 2017, | |||
End of changes. 17 change blocks. | ||||
33 lines changed or deleted | 59 lines changed or added | |||
This html diff was produced by rfcdiff 1.46. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |