<?xml version="1.0" encoding="US-ASCII"?>

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC8754 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8754.xml">
<!ENTITY NET-PGM PUBLIC "" "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.ietf-spring-srv6-network-programming.xml">
<!ENTITY SRV6-ISIS PUBLIC "" "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.ietf-lsr-isis-srv6-extensions.xml">
<!ENTITY SRV6-BGP PUBLIC "" "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.ietf-bess-srv6-services.xml">
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC8174 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8174.xml">
]>

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc strict="yes" ?>
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?> <!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes"?> <!-- sort the reference entries alphabetically -->
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?> <!-- control vertical white space -->
<?rfc subcompact="no"?> <!-- keep one blank line between list items -->
<?rfc autobreaks="yes"?>
<rfc category="std" docName="draft-filsfils-spring-net-pgm-extension-srv6-usid-06" ipr="trust200902">
 <!-- category values: std, bcp, info, exp, and historic
    ipr values: trust200902, noModificationTrust200902, noDerivativesTrust200902,
    or pre5378Trust200902  -->

    <front>

    	<title abbrev="NET-PGM: SRv6 uSID instruction">Network Programming extension: SRv6 uSID instruction</title>

    	<author fullname="Clarence Filsfils" initials="C" surname="Filsfils" role="editor">
    		<organization>Cisco Systems, Inc.</organization>
    		<address>
    			<postal>
    				<street></street>
    				<city></city>
    				<region></region>
    				<code></code>
    				<country>Belgium</country>
    			</postal>
    			<phone></phone>
    			<email>cf@cisco.com</email>
    		</address>
    	</author>
        <author fullname="Pablo Camarillo Garvia" initials="P" surname="Camarillo" role="editor" >
            <organization>Cisco Systems, Inc.</organization>
            <address>
                <postal>
                    <street></street>
                    <city></city>
                    <region></region>
                    <code></code>
                    <country>Spain</country>
                </postal>
                <phone></phone>
                <email>pcamaril@cisco.com</email>
            </address>
        </author>
        <author fullname="Dennis Cai" initials="D" surname="Cai">
            <organization>Alibaba</organization>
            <address>
                <postal>
                    <street></street>
                    <city></city>
                    <region></region>
                    <code></code>
                    <country>China</country>
                </postal>
                <phone></phone>
                <email>d.cai@alibaba-inc.com</email>
            </address>
        </author>
    	<author fullname="Daniel Voyer" initials="D" surname="Voyer">
    		<organization>Bell Canada</organization>
    		<address>
    			<postal>
    				<street></street>
    				<city></city>
    				<region></region>
    				<code></code>
    				<country>Canada</country>
    			</postal>
    			<phone></phone>
    			<email>daniel.voyer@bell.ca</email>
    		</address>
    	</author>
    	<author fullname="Israel Meilik" initials="I" surname="Meilik">
    		<organization>Broadcom</organization>
    		<address>
    			<postal>
    				<street></street>
    				<city></city>
    				<region></region>
    				<code></code>
    				<country>Israel</country>
    			</postal>
    			<phone></phone>
    			<email>israel.meilik@broadcom.com</email>
    		</address>
    	</author> 
        <author fullname="Keyur Patel" initials="K" surname="Patel">
            <organization>Arrcus, Inc.</organization>
            <address>
                <postal>
                    <street></street>
                    <city></city>
                    <region></region>
                    <code></code>
                    <country>United States of America</country>
                </postal>
                <phone></phone>
                <email>keyur@arrcus.com</email>
            </address>
        </author>
    	<author fullname="Wim Henderickx" initials="W" surname="Henderickx">
    		<organization>Nokia</organization>
    		<address>
    			<postal>
    				<street></street>
    				<city></city>
    				<region></region>
    				<code></code>
    				<country>Belgium</country>
    			</postal>
    			<phone></phone>
    			<email>wim.henderickx@nokia.com</email>
    		</address>
    	</author>
    	<author fullname="Prem Jonnalagadda" initials="P" surname="Jonnalagadda">
    		<organization>Barefoot Networks</organization>
    		<address>
    			<postal>
    				<street></street>
    				<city></city>
    				<region></region>
    				<code></code>
    				<country>United States of America</country>
    			</postal>
    			<phone></phone>
    			<email>prem@barefootnetworks.com</email>
    		</address>
    	</author>
        <author fullname="David Melman" initials="D" surname="Melman">
            <organization>Marvell</organization>
            <address>
                <postal>
                    <street></street>
                    <city></city>
                    <region></region>
                    <code></code>
                    <country>Israel</country>
                </postal>
                <phone></phone>
                <email>davidme@marvell.com</email>
            </address>
        </author>
        <author fullname="Yisong Liu" initials="Y" surname="Liu">
            <organization>China Mobile</organization>
            <address>
                <postal>
                    <street></street>
                    <city></city>
                    <region></region>
                    <code></code>
                    <country>China</country>
                </postal>
                <phone></phone>
                <email>liuyisong@chinamobile.com</email>
            </address>
        </author>
        <author fullname="Zhenbin Li" initials="Z." surname="Li">
            <organization>Huawei Technologies</organization>
            <address>
                <postal>
                    <street></street>
                    <city></city>
                    <region></region>
                    <code></code>
                    <country>China</country>
                </postal>
                <phone></phone>
                <email>lizhenbin@huawei.com</email>
            </address>
        </author>
        <author fullname="James Guichard" initials="J." surname="Guichard">
            <organization>Futurewei</organization>
            <address>
                <postal>
                    <street></street>
                    <city></city>
                    <region></region>
                    <code></code>
                    <country>United States of America</country>
                </postal>
                <phone></phone>
                <email>james.n.guichard@futurewei.com</email>
            </address>
        </author>
    	<date />

    	<area>General</area>
    	<workgroup>SPRING</workgroup>

    	<keyword>SRv6</keyword>
    	<keyword>Segment Routing</keyword>
    	<keyword>IPv6 Segment Routing</keyword>
    	<keyword>Network Programming</keyword>

     <!-- Keywords will be incorporated into HTML output
        files in a meta tag but they have no effect on text or nroff
        output. If you submit your draft to the RFC Editor, the
        keywords will be used for the search engine. -->
        <abstract>
        	<t>The SRv6 &quot;micro segment&quot; (SRv6 uSID or uSID for short) instruction is a straightforward extension of the SRv6 Network Programming model: 
                <list style="symbols">
                   <t>The SRv6 Control Plane is leveraged without any change</t>
                   <t>The SRH dataplane encapsulation is leveraged without any change</t>
                   <t>Any SID in the SID list can carry micro segments</t>
                   <t>Based on the Compressed SRv6 Segment List Encoding in SRH <xref target="I-D.filsfilscheng-spring-srv6-srh-comp-sl-enc" /> framework</t>
               </list>
           </t>
           <t>This enables:
                <list style="symbols">
                    <t>ultra-scale (e.g. multi-domain 5G deployments)</t>
                    <t>minimum MTU overhead</t>
                    <t>installed-base reuse</t>
                </list>
            </t>
        </abstract>

        <note title="Requirements Language">
        	<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 <xref target="RFC2119" /> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>
        </note>
    </front>

    <middle>

    	<section title="Introduction">
    		<t>SRv6 Network Programming <xref target="I-D.ietf-spring-srv6-network-programming" /> defines a mechanism to build a network program with topological and service segments. It leverages the SRH <xref target="RFC8754" /> to encode a network program together with optional metadata shared among the different SIDs.</t>

            <t>This draft extends SRv6 Network Programming with a new type of SRv6 SID behaviors: SRv6 uN, uA, uDT, uDX.</t>

            <t>This extension fully leverages the SRv6 network programming solution: 
                <list style="symbols">
                   <t>The SRv6 Control Plane is leveraged without any change</t>
                   <t>The SRH dataplane encapsulation is leveraged without any change</t>
                   <t>Any SID in the SID list can carry micro segments</t>
                   <t>Based on the Compressed SRv6 Segment List Encoding in SRH <xref target="I-D.filsfilscheng-spring-srv6-srh-comp-sl-enc" /> framework</t>
               </list>
           </t>

            <t>This enables:
                <list style="symbols">
                    <t>ultra-scale (e.g. multi-domain 5G deployments)</t>
                    <t>minimum MTU overhead</t>
                    <t>installed-base reuse</t>
                </list>
            <vspace blankLines="25" /></t>
    	</section>

        <section title="Terminology">
            <t>The SRv6 Network Programming, SRH and Compressed SRv6 Segment List Encoding in SRH terminology is leveraged and extended with the following terms:</t>

            <texttable style="all">
                <ttcol>Term</ttcol>
                <ttcol>Definition</ttcol>
                
                <c>uSID block</c>
                <c>A block of uSID&apos;s. It can be any IPv6 prefix available to the provider.</c>

                <c>uSID</c>
                <c>A Compressed-SID. In this document a 16-bit ID. A different uSID length may be used.</c>

                <c>Active uSID</c>
                <c>First uSID after the uSID block.</c>

                <c>Next uSID</c>
                <c>Next uSID after the Active uSID.</c>

                <c>Last uSID</c>
                <c>From left to right, the last uSID before the first End-of-Container uSID.</c>

                <c>End-of-Container</c>
                <c>Reserved uSID used to mark the end of a uSID container. The value 0000 is selected as End-of-Container. All of the empty uSID container positions must be filled with the End-of-Container ID. Hence, the End-of-Container can be present more than once in a uSID container.</c>

                <c>uSID container</c>
                <c>A CSID container. A 128bit SRv6 SID of format
                    &lt;uSID-Block&gt;&lt;Active-uSID&gt;&lt;Next-uSID&gt;...&lt;Last-uSID&gt;&lt;End-of-Container&gt;...&lt;End-of-Container&gt;.                  
                    A uSID container can be encoded in the Destination Address of an IPv6 header or at any position in the Segment List of an SRH.</c>
            </texttable>
            <t><vspace blankLines="10" /></t>
        </section>

        <section title="uSID Allocation within a uSID Block">
            <section title="GIB, LIB, global uSID and local uSID">
                <t>GIB: The set of IDs available for global uSID allocation.</t>
                <t>LIB: The set of IDs available for local uSID allocation.</t>
                <section title="Global uSID">
                    <t>A uSID from the GIB.</t>
                    <t>A Global uSID typically identifies a shortest-path to a node in the SR domain. An IP route (e.g., /64) is advertised by the parent node to each of its global uSID&apos;s, under the associated uSID block. The parent node executes a variant of the END behavior.</t>
                    <t>A node can have multiple global uSID&apos;s under the same uSID blocks (e.g. one per IGP flex-algorithm). Multiple nodes may share the same global uSID (anycast).</t>
                </section>
                <section title="Local uSID">
                    <t>A uSID from the LIB.</t>
                    <t>A local uSID may  identify a cross-connect to a direct neighbor over a specific interface or a VPN context.</t>
                    <t>No IP route is advertised by a parent node for its local uSID&apos;.</t>
                    <t>If N1 and N2 are two different physical nodes of the uSID domain and I is a local uSID value, then N1 and N2 may bind two different behaviors to I.</t>
                </section>
                <section title="Reference Illustration">
                    <t>For illustration simplicity, we will use:
                        <list style="symbols">
                            <t>uSID block length: 48 bits</t>
                            <t>uSID block: 2001:db8:0::/48</t>
                            <t>uSID length: 16 bits</t>
                            <t>uSID: 2001:db8:0:XYZW::/64</t>
                            <t>GIB: nibble X from hexa(0) to hexa(D)</t>
                            <t>LIB: nibble X hexa(E) or hexa(F)</t>
                        </list>
                    </t>
                    <t>Leveraging our reference illustration,
                        <list style="symbols">
                            <t>A uSID 2001:db8:0:XYZW::/64 is said to be allocated from its block (2001:db8:0::/48).</t>
                            <t>More specifically, a uSID is allocated from the GIB or LIB of block 2001:db8:0::/48 depending on the value of the &quot;X&quot; nibble: 0-D for GIB, and E-F for LIB.</t>
                            <t>With the above allocation scheme, the uSID Block 2001:db8:0::/48 supports up to 57k global uSID&apos;s (e.g. routers) while each router would support up to 8k local uSID&apos;s.</t>
                        </list>
                    </t>
                    <t>Another illustration could assume a 32-bit uSID length and a LIB restricted to the uSIDs with the first byte set to FF. In this context, the network as a whole would support 2^32-2^24 global uSID&apos;s (e.g. routers) while each router would support up to 2^24 local uSID&apos;s.<vspace blankLines="25" /></t>
                </section>
            </section>
        </section>

        <?rfc needLines="40" ?>
    	<section title="SRv6 behaviors associated with a uSID" anchor="behaviors">
    		<t>The SRv6 SRH encapsulation and its network programming model are extended with the following functions:</t>
            <section title="uSID behaviors related to the IGP">
        		<section title="uN">
        			<t>The uN is a short notation for the End behavior with NEXT-CSID, PSP and USD flavors as defined in <xref target="I-D.filsfilscheng-spring-srv6-srh-comp-sl-enc" />.</t>
                    <t>As a reminder the pseudo-code of the End behavior with NEXT-CSID flavor, when applied to a 48b uSID block and a 16b uSID length is as follows:</t>
                    <figure>
                        <artwork><![CDATA[
2001:db8:0:0N00::/64 bound to the pseudocode shift-and-lookup:
    1.   Copy DA[64..127] into DA[48..111]                  ;; Ref1
    2.   Set DA[112..127] to 0x0000
    3.   Forward the packet to the new DA

2001:db8:0:0N00::/80 bound to the End behavior with PSP & USD flavors
                        ]]></artwork>
                    </figure>
                    <t>Ref 1: DA[X..Y] refers to the bits from position X to Y (included) in the IPv6 Destination Address of the received packet. The bit 0 is the MSB, while the bit 127 is the LSB.</t>
                    <section title="Control-plane representation">
                        <t>In <xref target="I-D.ietf-lsr-isis-srv6-extensions">ISIS</xref>, a uN is advertised with the following information:
                            <list style="symbols">
                                <t>Value = 2001:db8:0:0N00::</t>
                                <t>Behavior = uN</t>
                                <t>Structure = 
                                    <list style="symbols">
                                        <t>LBL = 48</t>
                                        <t>LNL = 16</t>
                                        <t>FL = 0</t>
                                        <t>AL = 64</t>
                                    </list></t>
                                <t>Algorithm = 0 (or other)</t>
                            </list>
                        </t>
                    </section>
        		</section>

                <section title="uA">
                    <t>The uA local behavior is a short notation for the End.X behavior with NEXT-CSID, PSP and USD flavors <xref target="I-D.filsfilscheng-spring-srv6-srh-comp-sl-enc" />.</t>
                    <t>An instance of the uA SRv6 uSID behavior is associated with a set, J, of one or more Layer-3 adjacencies.</t>
                    <t>As a reminder the pseudo-code of the End.X behavior with NEXT-CSID flavor, when applied to a 48b uSID block and a 16b uSID length is as follows:</t>
                    <figure>
                        <artwork><![CDATA[
2001:db8:0:FNAJ::/64 bound to the pseudocode shift-and-xconnect:
    1.   Copy DA[64..127] into DA[48..111]                  ;; Ref1
    2.   Set DA[112..127] to 0x0000
    3.   Forward to layer-3 adjacency J

2001:db8:0:FNAJ::/80 bound to the End.X behavior w PSP & USD flavors
                        ]]></artwork>
                    </figure>
                    <t>Ref 1: DA[X..Y] refers to the bits from position X to Y (included) in the IPv6 Destination Address of the received packet. The bit 0 is the MSB, while the bit 127 is the LSB.</t>

                    <section title="Control-plane representation">
                        <t>In <xref target="I-D.ietf-lsr-isis-srv6-extensions">ISIS</xref>, a uA is advertised with the following information:
                            <list style="symbols">
                                <t>Value = 2001:db8:0:0N00:FNAJ::</t>
                                <t>Behavior = uA</t>
                                <t>Structure = 
                                    <list style="symbols">
                                        <t>LBL = 48</t>
                                        <t>LNL = 16</t>
                                        <t>FL = 16</t>
                                        <t>AL = 48</t>
                                    </list></t>
                                <t>Algorithm = 0 (or other)</t>
                            </list>
                        </t>
                        <t>Note: From a formal viewpoint, a uA SID of node N is defined by the local FIB entry B:uA/64 of N (i.e. this definition is independent from any uN SID of node N). In order to signal in ISIS a container SID with the same routable semantics as End.X, the ISIS advertisement of a uA SID is done as uN+uA. uN provides the global route to the node like the End behavior. uA provides the cross-connect function like the &quot;X&quot; of the End.X.</t>
                    </section>
                </section>
            </section>
            <section title="uSID Behaviors related to BGP">
                <section title="uDT">
                    <t>A local uDT behavior of Node D 2001:db8:0:FNVT:: is defined by the following single FIB entry and pseudo-code:</t>
                    <t>2001:db8:0:FNVT::/80 bound to the same pseudocode as End.DT4/End.DT6/End.DT2*</t>

                    <section title="Control-plane representation">
                        <t>In <xref target="I-D.ietf-bess-srv6-services">BGP</xref>, a uDT is advertised with the following information:
                            <list style="symbols">
                                <t>Value = 2001:db8:0:0N00:FNVT::</t>
                                <t>Behavior = uDT</t>
                                <t>Structure = 
                                    <list style="symbols">
                                        <t>LBL = 48</t>
                                        <t>LNL = 16</t>
                                        <t>FL = 16</t>
                                        <t>AL = 0</t>
                                        <t>TL = 16</t>
                                        <t>TO = 64</t>
                                    </list></t>
                                <t>Algorithm = 0 (or other)</t>
                            </list>
                        </t>
                        <t>Note: the advertised SID value includes the uN SRv6 uSID of the parent.</t>
                    </section>
                </section>
                <section title="uDX">
                    <t>A local uDX behavior of Node D 2001:db8:0:FNXJ:: is defined by the following single FIB entry and pseudo-code:</t>
                    <t>2001:db8:0:FNXJ::/80 bound to the same pseudocode as End.DX4/End.DX6/End.DX2</t>

                    <section title="Control-plane representation">
                        <t>In <xref target="I-D.ietf-bess-srv6-services">BGP</xref>, a uDX is advertised with the following information:
                            <list style="symbols">
                                <t>Value = 2001:db8:0:0N00:FNXJ::</t>
                                <t>Behavior = uDX</t>
                                <t>Structure = 
                                    <list style="symbols">
                                        <t>LBL = 48</t>
                                        <t>LNL = 16</t>
                                        <t>FL = 16</t>
                                        <t>AL = 0</t>
                                        <t>TL = 16</t>
                                        <t>TO = 64</t>
                                    </list></t>
                                <t>Algorithm = 0 (or other)</t>
                            </list>
                        </t>
                        <t>Note: the advertised SID value includes the uN SRv6 uSID of the parent.</t>
                    </section>
                </section>
            </section>
    	</section>


    	<section title="Routing">
    		<t>If Node 1 is configured with a uN SID 2001:db8:0:0100::/64 then the operator must ensure that Node 1 advertises 2001:db8:0:0100::/64 in the routing protocol.</t>
    	</section>

		<section title="Benefits">
            <t><list style="symbols">
    			<t>Leverages SRv6 Network Programming with NO change
                    <list style="symbols">
                        <t>SRv6 uSID is a flavor of the SRv6 network programming model</t>
                    </list>
                </t>
                <t>Leverages SRv6 dataplane (SRH) with NO change
                    <list style="symbols">
                        <t>Any SID in DA or SRH can be an SRv6 uSID container</t>
                    </list>
                </t>
                <t>Leverages SRv6 Control-Plane with NO change</t>
                <t>Ultra-Scale
                    <list style="symbols">
                        <t>6 uSID&apos;s per uSID container</t>
                        <t>18 source routing waypoints in only 40bytes of overhead
                            <list>
                                <t>H.Encaps.Red with an SRH of 40 bytes (8 fixed + 2 * 16 bytes)</t>
                                <t>6 uSID&apos;s in DA and 12 in SRH</t>
                            </list>
                        </t>
                    </list>
                </t>
                <t>Lowest MTU overhead
                    <list style="symbols">
                        <t>In apple to apple comparison, the SRv6 solution outperforms any alternative (VxLAN with SR-MPLS, CRH).</t>
                    </list>
                </t>
                <t>Scalable number of globally unique nodes in the domain
                    <list style="symbols">
                        <t>16-bit uSID: 65k uSIDs per domain block</t>
                        <t>32-bit uSID: 4.3M uSIDs per domain block</t>
                    </list>
                </t>
                <t>Proven Hardware-friendliness
                    <list style="symbols">
                        <t>Leverages mature hardware capabilities (Inline DA edit, DA longest match)</t>
                        <t>Avoids any extra lookup in indexed mapping table</t>
                        <t>Demonstrated by the number of linerate interoperable hardware implementations at the first Interop report in February 2020, less than 9 months after the first public version of this document.</t>
                        <t>Public operator report of leverage of installed base</t>
                        <t>A micro-program which requires less than 6 uSID&apos;s only requires legacy IPinIP encapsulation behavior</t>
                    </list>
                <vspace blankLines="0" />
                </t>
                <t>Scalable Control-Plane
                    <list style="symbols">
                        <t>No indexed mapping table is required</t>
                        <t>Summarization at area/domain boundary provides massive scaling advantage</t>
                        <t>No routing extension is required: a simple prefix advertisement suffices</t>
                    </list>
                </t>
                <t>Seamless Deployment
                    <list style="symbols">
                        <t>A uSID may be used as a SID: i.e. the container holds a single uSID</t>
                        <t>The inner structure of an SR Policy can stay opaque to the source: i.e. a container with uSID&apos;s is just seen as a SID by the policy headend</t>
                    </list>
                </t>
                <t>Security
                    <list style="symbols">
                        <t>Leverages SRv6&apos;s native SR domain security</t>
                    </list>
                </t>    
                <t>Large-Scale DC 
                    <list style="symbols">
                        <t>SID&apos;s may be used to address applications on hosts (scale in 2^128)</t>
                        <t>Hardware friendliness of uSID&apos;s may be used to specify billions of waypoints in cost/power-optimized DC fabric</t>
                    </list>
                </t>
            </list></t>
		</section>

        <section title="Running code">
            <t>The hardware and software platforms listed below have demonstrated support for the uN instruction defined in this document.</t>
            <t>Further on, all these implementations have participated in a joint interoperability testing <xref target="NANOG78"/>.</t>
            <t>Hardware implementations (in alphabetical order):
                <list style="symbols">
                    <t>Arrcus ArcOS           (based on Broadcom Jericho2)</t>
                    <t>Barefoot Tofino P4-programmable Ethernet switch ASIC</t>
                    <t>Cisco 8000 Series Routers (based on Cisco Silicon One Q100)</t>
                    <t>Cisco ASR9000 platform (with 3rd gen Tomahawk and 4th gen Lightspeed line-cards)</t>
                    <t>Cisco NCS5500 platform (based on Broadcom Jericho/Jericho+)</t>
                    <t>Marvell Prestera Packet Processor</t>
                </list>
            </t>
            <t>Software open-source implementations (in alphabetical order):
                <list style="symbols">
                    <t>FD.io VPP</t>
                    <t>Linux Kernel</t>
                </list>
            </t>
        </section>

        <section title="Security">
            <t>The security rules defined in Section 7 of <xref target="I-D.ietf-spring-srv6-network-programming" />, protect intra-domain deployments that includes SRv6 uSID.</t>
        </section>

        <section title="IANA Considerations">        
            <t>This document requests IANA to allocate the following codepoints within the &quot;SRv6 Endpoint Behaviors&quot; sub-registry under the top-level &quot;Segment Routing Parameters&quot; registry.</t>

            <texttable anchor="endpoint_cp_types" title="IETF - SRv6 Endpoint Behaviors">
                <ttcol align="left">Value</ttcol>
                <ttcol align="center">Hex</ttcol>
                <ttcol align="center">Endpoint behavior</ttcol>
                <ttcol align="center">Reference</ttcol>
                <c>42</c>
                <c>0x002A</c>
                <c>uN</c>
                <c>[This.ID]</c>
                <c>43</c>
                <c>0x002B</c>
                <c>uN (S&amp;L+End)</c>
                <c>[This.ID]</c>
                <c>44</c>
                <c>0x002C</c>
                <c>uN (S&amp;L+End PSP)</c>
                <c>[This.ID]</c>
                <c>45</c>
                <c>0x002D</c>
                <c>uN (S&amp;L+End USP)</c>
                <c>[This.ID]</c>
                <c>46</c>
                <c>0x002E</c>
                <c>uN (S&amp;L+End PSP/USP)</c>
                <c>[This.ID]</c>
                <c>47</c>
                <c>0x002F</c>
                <c>uN (S&amp;L+End USD)</c>
                <c>[This.ID]</c>
                <c>48</c>
                <c>0x0030</c>
                <c>uN (S&amp;L+End PSP/USD)</c>
                <c>[This.ID]</c>
                <c>49</c>
                <c>0x0031</c>
                <c>uN (S&amp;L+End USP/USD)</c>
                <c>[This.ID]</c>
                <c>50</c>
                <c>0x0032</c>
                <c>uN (S&amp;L+End PSP/USP/USD)</c>
                <c>[This.ID]</c>
                <c>51</c>
                <c>0x0033</c>
                <c>uA</c>
                <c>[This.ID]</c>
                <c>52</c>
                <c>0x0034</c>
                <c>uA (S&amp;X+End.X)</c>
                <c>[This.ID]</c>
                <c>53</c>
                <c>0x0035</c>
                <c>uA (S&amp;X+End.X PSP)</c>
                <c>[This.ID]</c>
                <c>54</c>
                <c>0x0036</c>
                <c>uA (S&amp;X+End.X USP)</c>
                <c>[This.ID]</c>
                <c>55</c>
                <c>0x0037</c>
                <c>uA (S&amp;X+End.X PSP/USP)</c>
                <c>[This.ID]</c>
                <c>56</c>
                <c>0x0038</c>
                <c>uA (S&amp;X+End.X USD)</c>
                <c>[This.ID]</c>
                <c>57</c>
                <c>0x0039</c>
                <c>uA (S&amp;X+End.X PSP/USD)</c>
                <c>[This.ID]</c>
                <c>58</c>
                <c>0x003A</c>
                <c>uA (S&amp;X+End.X USP/USD)</c>
                <c>[This.ID]</c>
                <c>59</c>
                <c>0x003B</c>
                <c>uA (S&amp;X+End.X PSP/USP/USD)</c>
                <c>[This.ID]</c>
                <c>60</c>
                <c>0x003C</c>
                <c>uDX6</c>
                <c>[This.ID]</c>
                <c>61</c>
                <c>0x003D</c>
                <c>uDX4</c>
                <c>[This.ID]</c>
                <c>62</c>
                <c>0x003E</c>
                <c>uDT6</c>
                <c>[This.ID]</c>
                <c>63</c>
                <c>0x003F</c>
                <c>uDT4</c>
                <c>[This.ID]</c>
                <c>64</c>
                <c>0x0040</c>
                <c>uDT46</c>
                <c>[This.ID]</c>
                <c>65</c>
                <c>0x0041</c>
                <c>uDX2</c>
                <c>[This.ID]</c>
            </texttable>               
        </section>

        <section anchor="Acknowledgements" title="Acknowledgements">
            <t>The authors would like to acknowledge Francois Clad, Peter Psenak, Ketan Talaulikar, Jakub Horn, Swadesh Agrawal, Zafar Ali, Darren Dukes, Kiran Sasidharan, Junaid Israr, Lakshmanan Srikanth, Asif Islam, Saleem Hafeez, Michael MacKenzie, Sushek Shekar, YuanChao Su, Alexander Preusche, Alberto Donzelli, Miya Kohno, David Smith, Ianik Semco, Bertrand Duvivier, Frederic Trate, Kris Michielsen, Eyal Dagan, Eli Stein, Ofer Iny, Elad Naor, Guy Caspari, Mel Tsai, Anand Sridharan, Aviad Behar, Joseph Chin.</t>
        </section>

        <section title="Contributors">
            <t>Jisu Bhattacharyaa<vspace blankLines="0" />
            Cisco Systems, Inc.<vspace blankLines="0" />
            United States of America</t>
            <t>Email: jisu@cisco.com<vspace blankLines="2" /></t>

            <t>Kamran Raza<vspace blankLines="0" />
            Cisco Systems, Inc.<vspace blankLines="0" />
            Canada</t>
            <t>Email: skraza@cisco.com<vspace blankLines="2" /></t>

            <t>John Bettink<vspace blankLines="0" />
            Cisco Systems, Inc.<vspace blankLines="0" />
            United States of America</t>
            <t>Email: jbettink@cisco.com<vspace blankLines="2" /></t>

            <t>Tomonobu Niwa<vspace blankLines="0" />
            KDDI<vspace blankLines="0" />
            Japan</t>
            <t>Email: to-niwa@kddi.com<vspace blankLines="2" /></t>


            <t>Luay Jalil<vspace blankLines="0" />
            Verizon<vspace blankLines="0" />
            United States of America</t>
            <t>Email: luay.jalil@one.verizon.com<vspace blankLines="2" /></t>

            <t>Zhichun Jiang<vspace blankLines="0" />
            Tencent<vspace blankLines="0" />
            China</t>
            <t>Email: zcjiang@tencent.com<vspace blankLines="2" /></t>

            <t>Ahmed Shawky<vspace blankLines="0" />
            Saudi Telecom Company<vspace blankLines="0" />
            Saudi Arabia</t>
            <t>Email: ashawky@stc.com.sa<vspace blankLines="2" /></t> 

            <t>Nic Leymann<vspace blankLines="0" />
            Deutsche Telekom<vspace blankLines="0" />
            Germany</t>
            <t>Email: N.Leymann@telekom.de<vspace blankLines="2" /></t> 

            <t>Dirk Steinberg<vspace blankLines="0" />
            Lapishills Consulting Limited<vspace blankLines="0" />
            Cyprus</t>
            <t>Email: dirk@lapishills.com<vspace blankLines="2" /></t> 

            <t>Shawn Zandi<vspace blankLines="0" />
            LinkedIn<vspace blankLines="0" />
            United States of America</t>
            <t>Email: szandi@linkedin.com<vspace blankLines="2" /></t> 

            <t>Gaurav Dawra<vspace blankLines="0" />
            LinkedIn<vspace blankLines="0" />
            United States of America</t>
            <t>Email: gdawra@linkedin.com<vspace blankLines="2" /></t> 

            <t>Jim Uttaro<vspace blankLines="0" />
            AT&amp;T<vspace blankLines="0" />
            United States of America</t>
            <t>Email: ju1738@att.com<vspace blankLines="2" /></t> 

            <t>Ning So<vspace blankLines="0" />
            Reliance<vspace blankLines="0" />
            United States of America</t>
            <t>Email: Ning.So@ril.com<vspace blankLines="2" /></t> 

            <t>Michael Fiumano<vspace blankLines="0" />
            Sprint<vspace blankLines="0" />
            United States of America</t>
            <t>Email: michael.f.fiumano@sprint.com<vspace blankLines="2" /></t> 

            <t>Mazen Khaddam<vspace blankLines="0" />
            Cox<vspace blankLines="0" />
            United States of America</t>
            <t>Email: Mazen.Khaddam@cox.com<vspace blankLines="2" /></t> 

            <t>Jichun Ma<vspace blankLines="0" />
            China Unicom<vspace blankLines="0" />
            China</t>
            <t>Email: majc16@chinaunicom.cn<vspace blankLines="2" /></t> 

            <t>Satoru Matsushima<vspace blankLines="0" />
            Softbank<vspace blankLines="0" />
            Japan</t>
            <t>Email: satoru.matsushima@g.softbank.co.jp<vspace blankLines="2" /></t> 

            <t>Francis Ferguson<vspace blankLines="0" />
            CenturyLink<vspace blankLines="0" />
            United States of America</t>
            <t>Email: Francis.Ferguson@centurylink.com<vspace blankLines="2" /></t> 

            <t>Takuya Miyasaka<vspace blankLines="0" />
            KDDI<vspace blankLines="0" />
            Japan</t>
            <t>Email: ta-miyasaka@kddi.com<vspace blankLines="2" /></t> 

            <t>Kentaro Ebisawa<vspace blankLines="0" />
            Toyota Motor Corporation<vspace blankLines="0" />
            Japan</t>
            <t>Email: ebisawa@toyota-tokyo.tech<vspace blankLines="2" /></t> 

            <t>Yukito Ueno<vspace blankLines="0" />
            NTT Communications Corporation<vspace blankLines="0" />
            Japan</t>
            <t>Email: yukito.ueno@ntt.com<vspace blankLines="2" /></t> 
        </section>

    </middle>
	<back>
		<references title="Normative References">
			<!--?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?-->
			&RFC2119;
			&RFC8174;
			&RFC8754;
			&NET-PGM;
            <reference anchor="I-D.filsfilscheng-spring-srv6-srh-comp-sl-enc" target="draft-filsfilscheng-spring-srv6-srh-comp-sl-enc-00">
              <front>
                <title>Compressed SRv6 Segment List Encoding in SRH</title>
                <author initials="W." surname="Cheng" />
                <author initials="C." surname="Filsfils" />
                <author initials="Z." surname="Li" />
                <author initials="D." surname="Cai" />
                <author initials="D." surname="Voyer" />
                <author initials="F." surname="Clad" />
                <author initials="S." surname="Zadok" />
                <author initials="J." surname="Guichard" />
                <author initials="L." surname="Aihua" />
                <date year="2020" month="May" day="19"/>
              </front>
            </reference>
		</references>
        <references title="Informative References">
            &SRV6-ISIS;
            &SRV6-BGP;
            <reference anchor="NANOG78" target="https://storage.googleapis.com/site-media-prod/meetings/NANOG78/2097/20200212_Mcdougall_Srv6_Technology_And_v1.pdf">
              <front>
                <title>SRv6 Technology and Deployment Use-cases</title>
                <author initials="C." surname="Filsfils">
                  <organization>Cisco Systems, Inc.</organization>
                </author>
                <date year="2020" month="February"/>
              </front>
              <seriesInfo name="NANOG78" value=""/>
            </reference>
        </references>
	</back>
</rfc>
