<?xmlversion="1.0" encoding="US-ASCII"?>version='1.0' encoding='utf-8'?> <!DOCTYPE rfc SYSTEM"rfc2629.dtd"> <?rfc toc="yes"?> <?rfc tocompact="yes"?> <?rfc tocdepth="3"?> <?rfc tocindent="yes"?> <?rfc symrefs="yes"?> <?rfc sortrefs="yes"?> <?rfc comments="yes"?> <?rfc inline="yes"?> <?rfc compact="yes"?> <?rfc subcompact="no"?>"rfc2629-xhtml.ent"> <rfccategory='std' ipr='trust200902' docName='draft-ietf-mpls-rfc8287-len-clarification-04' updates="8287">number="8690" xmlns:xi="http://www.w3.org/2001/XInclude" category="std" ipr="trust200902" docName="draft-ietf-mpls-rfc8287-len-clarification-04" updates="8287" obsoletes="" submissionType="IETF" xml:lang="en" consensus="true" tocInclude="true" symRefs="true" sortRefs="true" version="3"> <!-- xml2rfc v2v3 conversion 2.31.0 --> <front> <titleabbrev="RFC8287abbrev="Clarification of Segment ID Sub-TLV LengthClarification">RFC8287for RFC 8287">Clarification of Segment ID Sub-TLV LengthClarification</title>for RFC 8287</title> <seriesInfo name="RFC" value="8690" /> <author initials="N." surname="Nainar" fullname="Nagendra Kumar Nainar"> <organization>Cisco Systems, Inc.</organization> <address> <postal> <street>7200-12 Kit Creek Road</street> <city>Research Triangle Park</city> <region>NC</region> <code>27709</code><country>US</country><country>United States of America</country> </postal> <email>naikumar@cisco.com</email> </address> </author> <author initials="C." surname="Pignataro" fullname="Carlos Pignataro"> <organization>Cisco Systems, Inc.</organization> <address> <postal> <street>7200-11 Kit Creek Road</street> <city>Research Triangle Park</city> <region>NC</region> <code>27709</code><country>US</country><country>United States of America</country> </postal> <email>cpignata@cisco.com</email> </address> </author> <author initials="F." surname="Iqbal" fullname="Faisal Iqbal"> <organization>Individual</organization> <address> <postal><street></street> <city></city> <region></region> <code></code><street/> <city/> <region/> <code/> <country>Canada</country> </postal><email>faisal.iqbal@msn.com</email><email>faisal.ietf@gmail.com</email> </address> </author> <author initials="A." surname="Vainshtein" fullname="Alexander Vainshtein"> <organization>ECI Telecom</organization> <address> <postal><street></street> <city></city> <region></region> <code></code><street/> <city/> <region/> <code/> <country>Israel</country> </postal> <email>vainshtein.alex@gmail.com</email> </address> </author> <date/>month="December" year="2019"/> <area>Internet</area> <workgroup>Network Work group</workgroup> <keyword>mpls</keyword><abstract><t>RFC8287<abstract> <t>RFC 8287 defines the extensions toMPLSperform LSP Ping and Traceroute for Segment Routing IGP-Prefix and IGP-Adjacency SegmentIdentifierIdentifiers (SIDs) withanthe MPLS data plane.RFC8287RFC 8287 proposes3three TargetFECForwarding Equivalence Class (FEC) StackSub-TLVs.sub-TLVs. Whilethe standardRFC 8287 defines the format and procedure to handle thoseSub-TLVs,sub-TLVs, it does not sufficiently clarify how the length of the Segment IDSub-TLVssub-TLVs should be computed toincludebe included in the Length field of theSub-TLVs which may resultsub-TLVs. This ambiguity has resulted in interoperability issues.</t> <t>This document updatesRFC8287RFC 8287 by clarifying the length of each of the Segment IDSub-TLVssub-TLVs defined inRFC8287.RFC 8287. </t> </abstract> </front> <middle> <sectiontitle="Introduction">numbered="true" toc="default"> <name>Introduction</name> <t><xref target="RFC8287"/>format="default"/> defines the extensions to MPLS LSP Ping and Traceroute for Segment Routing IGP-Prefix and IGP-Adjacency SegmentIdentifierIdentifiers (SIDs) withanthe MPLS data plane. <xref target="RFC8287"/>format="default"/> proposes3three Target FEC StackSub-TLVs.sub-TLVs. Whilethe standardRFC 8287 defines the format and procedure to handle thoseSub-TLVs,sub-TLVs, it does not sufficiently clarify how the length of the Segment IDSub-TLVssub-TLVs should be computed toincludebe included in the Length field of theSub-TLVssub-TLVs, which may result in interoperability issues.</t> <t>This document updates <xref target="RFC8287"/>format="default"/> by clarifying the length of each Segment IDSub-TLVssub-TLVs defined in <xref target="RFC8287"/>.format="default"/>. </t> </section> <sectiontitle="Terminology">numbered="true" toc="default"> <name>Terminology</name> <t>This document uses theterminologiesterminology defined in <xref target="RFC8402"/>,format="default"/>, <xref target="RFC8029"/>,format="default"/>, and <xref target="RFC8287"/> and so theformat="default"/>; readers are expected to be familiar with thesame.terms as used in those documents. </t> </section> <sectiontitle="Requirements notation">numbered="true" toc="default"> <name>Requirements Notation</name> <t> The key words"MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY","<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", "<bcp14>MAY</bcp14>", and"OPTIONAL""<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as described inBCP 14 [RFC2119] [RFC8174]BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here. </t> </section> <sectiontitle="Length field clarificationnumbered="true" toc="default"> <name>Length Field Clarification for Segment IDSub-TLVs"> <t>Section 5 of <xrefSub-TLVs</name> <t><xref target="RFC8287"/>sectionFormat="of" section="5"/> defines3three different Segment IDSub-TLVssub-TLVs thatwillcan be included in the Target FEC Stack TLV defined in <xref target="RFC8029"/>.format="default"/>. The length of eachSub-TLVs MUSTsub-TLV <bcp14>MUST</bcp14> be calculated as defined in this section. </t> <t>TheTLVs representationTLV representations defined insection 5.1, 5.2Sections <xref target="RFC8287" section="5.1" sectionFormat="bare"/>, <xref target="RFC8287" section="5.2" sectionFormat="bare"/>, and5.3 of<xref target="RFC8287"/>section="5.3" sectionFormat="bare"/> of <xref target="RFC8287"/> are updated to clarify the lengthcalculationcalculations, as shown insection 4.1, 4.2Sections <xref target="ipv4-segment-id-subtlv" format="counter"/>, <xref target="ipv6-segment-id-subtlv" format="counter"/>, and4.3<xref target="igp-segment-id-subtlv" format="counter"/>, respectively. The updated TLVrepresentationrepresentations contain explicitly definedlength.lengths. </t> <sectiontitle="IPv4numbered="true" toc="default" anchor="ipv4-segment-id-subtlv"> <name>IPv4 IGP-Prefix Segment IDSub-TLV">Sub-TLV</name> <t>TheSub-TLVsub-TLV length for the IPv4 IGP-Prefix Segment IDMUST<bcp14>MUST</bcp14> be set to88, as shown in thebelowTLVformat:format below: </t><figure> <artwork><![CDATA[<artwork name="" type="" align="center" alt=""><![CDATA[ 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 = 34 (IPv4 IGP-Prefix SID)| Length = 8 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 prefix | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Prefix Length | Protocol | Reserved |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ]]></artwork> </figure>+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> </section> <sectiontitle="IPv6numbered="true" toc="default" anchor="ipv6-segment-id-subtlv"> <name>IPv6 IGP-Prefix Segment IDSub-TLV">Sub-TLV</name> <t>TheSub-TLVsub-TLV length for the IPv6 IGP-Prefix Segment IDMUST<bcp14>MUST</bcp14> be set to2020, as shown in thebelowTLVformat:format below: </t><figure> <artwork><![CDATA[<artwork name="" type="" align="center" alt=""><![CDATA[ 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 = 35 (IPv6 IGP-Prefix SID)| Length = 20 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | | IPv6 Prefix | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Prefix Length | Protocol | Reserved |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ]]></artwork> </figure>+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> </section> <sectiontitle="IGP-Adjacencynumbered="true" toc="default" anchor="igp-segment-id-subtlv"> <name>IGP-Adjacency Segment IDSub-TLV">Sub-TLV</name> <t>TheSub-TLVsub-TLV length for the IGP-Adjacency Segment ID varies depending on the Adjacency Type and Protocol. In any of the allowedcombinationcombinations of Adjacency Type and Protocol, the sub-TLV lengthMUST<bcp14>MUST</bcp14> be calculated by including 2 octets of the Reserved field.Table 1 below list<xref target="demo"/> lists the length for different combinations ofAdj.TypeAdj. Type and Protocol. </t><figure> <artwork><![CDATA[ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Protocol | Length for Adj.Type | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Parallel | IPv4 | IPv6 | Unnumbered| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OSPF | 20 | 20 | 44 | 20 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ISIS | 24 | 24 | 48 | 24 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Any | 20 | 20 | 44 | 20 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Table 1. IGP-Adjacency<table anchor="demo" align="center"> <name>IGP-Adjacency SID LengthComparison ]]></artwork> </figure>Computation</name> <thead> <tr> <th rowspan="2" colspan="1">Protocol</th> <th rowspan="1" colspan="4">Length for Adj. Type</th> </tr> <tr> <th align="center">Parallel</th> <th align="center">IPv4</th> <th align="center">IPv6</th> <th align="center">Unnumbered</th> </tr> </thead> <tbody> <tr> <td align="center">OSPF</td> <td align="center">20</td> <td align="center">20</td> <td align="center">44</td> <td align="center">20</td> </tr> <tr> <td align="center">ISIS</td> <td align="center">24</td> <td align="center">24</td> <td align="center">48</td> <td align="center">24</td> </tr> <tr> <td align="center">Any</td> <td align="center">20</td> <td align="center">20</td> <td align="center">44</td> <td align="center">20</td> </tr> </tbody> </table> <t> For example, when the Adj. Type is set to Parallel Adjacency and the Protocol is set to 0, theSub-TLVsub-TLV will be as below: </t><figure> <artwork><![CDATA[<artwork name="" type="" align="center" alt=""><![CDATA[ 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 = 36 (IGP-Adjacency SID) | Length = 20 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Adj. Type = 1 | Protocol = 0 | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Local Interface ID (4 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Remote Interface ID (4 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Advertising Node Identifier (4 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Receiving Node Identifier (4 octets) |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ]]></artwork> </figure>+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> </section> </section> <sectiontitle="IANA Considerations"> <t>Thisnumbered="true" toc="default"> <name>IANA Considerations</name> <t>IANA has listed this documentdoes not introduce any IANA consideration. </t>as an additional reference for the following entries in the "Sub-TLVs for TLV Types 1, 16, and 21" registry:</t> <table anchor="iana"> <name>Sub-TLVs for TLV Types 1, 16, and 21 (Updated Entries)</name> <thead> <tr> <th>Sub-Type</th> <th>Sub-TLV Name</th> <th>Reference</th> </tr> </thead> <tbody> <tr> <td>34</td> <td>IPv4 IGP-Prefix Segment ID</td> <td><xref target="RFC8287" sectionFormat="of" section="5.1"/>, This document</td> </tr> <tr> <td>35</td> <td>IPv6 IGP-Prefix Segment ID</td> <td><xref target="RFC8287" sectionFormat="of" section="5.2"/>, This document</td> </tr> <tr> <td>36</td> <td>IGP-Adjacency Segment ID</td> <td><xref target="RFC8287" sectionFormat="of" section="5.3"/>, This document</td> </tr> </tbody> </table> </section> <sectiontitle="Security Considerations">numbered="true" toc="default"> <name>Security Considerations</name> <t>This document updates <xref target="RFC8287"/>format="default"/> and does not introduce any additional security considerations. </t> </section> </middle> <back> <references> <name>Normative References</name> <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/> <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/> <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8402.xml"/> <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8029.xml"/> <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8287.xml"/> </references> <sectiontitle="Contributors"> <t>The below individuals contributed to this document: <list> <t>Zafar Ali, Cisco Systems, Inc.</t> </list> </t> </section> <section title="Acknowledgement">numbered="false" toc="default"> <name>Acknowledgements</name> <t>The authors would like to thank Michael Gorokhovsky and Manohar Doppalapudi for investigating theinteropinteroperability issue duringEANTC test.</t>European Advanced Network Test Center (EANTC) testing.</t> </section> <section numbered="false" toc="default"> <name>Contributors</name> <t>The following individual contributed to this document: Zafar Ali, Cisco Systems, Inc.</t> </section></middle> <back> <references title="Normative References"> <?rfc include="reference.RFC.2119"?> <?rfc include="reference.RFC.8174"?> <?rfc include="reference.RFC.8402"?> <?rfc include="reference.RFC.8029"?> <?rfc include="reference.RFC.8287"?> </references></back> </rfc>