<?xml version="1.0" encoding="US-ASCII"?>
<!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"?>
<rfc category="std" docName="draft-ietf-6man-enhanced-vpn-vtn-id-00"
     ipr="trust200902">
  <front>
    <title abbrev="IPv6 VTN Option">Carrying Virtual Transport Network (VTN)
    Identifier in IPv6 Extension Header</title>

    <author fullname="Jie Dong" initials="J." surname="Dong">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>Huawei Campus, No. 156 Beiqing Road</street>

          <city>Beijing</city>

          <code>100095</code>

          <country>China</country>
        </postal>

        <email>jie.dong@huawei.com</email>
      </address>
    </author>

    <author fullname="Zhenbin Li" initials="Z." surname="Li">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>Huawei Campus, No. 156 Beiqing Road</street>

          <city>Beijing</city>

          <code>100095</code>

          <country>China</country>
        </postal>

        <email>lizhenbin@huawei.com</email>
      </address>
    </author>

    <author fullname="Chongfeng Xie" initials="C." surname="Xie">
      <organization>China Telecom</organization>

      <address>
        <postal>
          <street>China Telecom Beijing Information Science &amp; Technology,
          Beiqijia</street>

          <city>Beijing</city>

          <code>102209</code>

          <country>China</country>
        </postal>

        <email>xiechf@chinatelecom.cn</email>
      </address>
    </author>

    <author fullname="Chenhao Ma" initials="C." surname="Ma">
      <organization>China Telecom</organization>

      <address>
        <postal>
          <street>China Telecom Beijing Information Science &amp; Technology,
          Beiqijia</street>

          <city>Beijing</city>

          <code>102209</code>

          <country>China</country>
        </postal>

        <email>machh@chinatelecom.cn</email>
      </address>
    </author>

    <author fullname="Gyan Mishra" initials="G." surname="Mishra">
      <organization>Verizon Inc.</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country/>
        </postal>

        <email>gyan.s.mishra@verizon.com</email>
      </address>
    </author>

    <date day="5" month="March" year="2022"/>

    <abstract>
      <t>Virtual Private Networks (VPNs) provide different customers with
      logically separated connectivity over a common network infrastructure.
      With the introduction and evolvement of 5G and other network scenarios,
      some existing or new customers may require connectivity services with
      advanced characteristics comparing to traditional VPNs. Such kind of
      network service is called enhanced VPNs (VPN+).</t>

      <t>A Virtual Transport Network (VTN) is a virtual underlay network which
      consists of a set of dedicated or shared network resources allocated
      from the physical underlay network, and is associated with a customized
      logical network topology. VPN+ services can be delivered by mapping one
      or a group of overlay VPNs to the appropriate VTNs as the virtual
      underlay. In packet forwarding, some fields in the data packet needs to
      be used to identify the VTN the packet belongs to, so that the
      VTN-specific processing can be performed on each node the packet
      traverses.</t>

      <t>This document proposes a new Hop-by-Hop option of IPv6 extension
      header to carry the VTN Resource ID, which is used to identify the set
      of network resources allocated to a VTN for packet processing. The
      procedure for processing the VTN option is also specified.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>Virtual Private Networks (VPNs) provide different customers with
      logically isolated connectivity over a common network infrastructure.
      With the introduction and evolvement of 5G and other network scenarios,
      some existing or new customers may require connectivity services with
      advanced characteristics comparing to traditional VPNs, such as resource
      isolation from other services or guaranteed performance. Such kind of
      network service is called enhanced VPN (VPN+). VPN+ service requires the
      coordination and integration between the overlay VPNs and the network
      characteristics of the underlay.</t>

      <t><xref target="I-D.ietf-teas-enhanced-vpn"/> describes a framework and
      the candidate component technologies for providing VPN+ services. It
      also introduces the concept of Virtual Transport Network (VTN). A
      Virtual Transport Network (VTN) is a virtual underlay network which
      consists of a set of dedicated or shared network resources allocated
      from the physical underlay network, and is associated with a customized
      logical network topology. VPN+ services can be delivered by mapping one
      or a group of overlay VPNs to the appropriate VTNs as the underlay, so
      as to provide the network characteristics required by the customers. In
      packet forwarding, traffic of different VPN+ services need to be
      processed separately based on the network resources and the logical
      topology associated with the corresponding VTN.</t>

      <t><xref target="I-D.dong-teas-enhanced-vpn-vtn-scalability"/> describes
      the scalability considerations and the possible optimizations for
      providing a relatively large number of VTNs for VPN+ services. One
      approach to improve the data plane scalability of VTN is to introduce a
      dedicated VTN Resource Identifier (VTN Resource ID) in the data packet
      to identify the set of network resources allocated to a VTN, so that
      VTN-specific packet processing can be performed using that set of
      resources, which avoids the possible resource competition with services
      in other VTNs. This is called Resource Independent (RI) VTN. A VTN
      Resource ID represents a subset of the resources (e.g. bandwidth, buffer
      and queuing resources) allocated on a given set of links and nodes which
      constitute a logical network topology. The logical topology associated
      with a VTN could be defined using mechanisms such as Multi-Topology
      <xref target="RFC4915"/>, <xref target="RFC5120"/> or Flex-Algo <xref
      target="I-D.ietf-lsr-flex-algo"/>, etc.</t>

      <t>This document proposes a mechanism to carry the VTN resource ID in a
      new Hop-by-Hop option of IPv6 extension header <xref target="RFC8200"/>
      of IPv6 packet, so that on each network node along the packet forwarding
      path, the VTN option in the packet is parsed, and the obtained VTN
      Resource ID is used to instruct the network node to use the set of
      network resources allocated to the corresponding VTN to process and
      forward the packet. The procedure for processing the VTN Resource ID is
      also specified. This provides a scalable solution to support a
      relatively large number of VTNs in an IPv6 network.</t>

      <section 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
        BCP14 <xref target="RFC2119">RFC 2119</xref> <xref
        target="RFC8174">RFC 8174</xref> when, and only when, they appear in
        all capitals, as shown here.</t>
      </section>
    </section>

    <section title="New IPv6 Extension Header Option for VTN">
      <t>A new Hop-by-Hop option type "VTN" is defined to carry the VTN
      related Identifier in an IPv6 packet. Its format is shown as below:</t>

      <t><figure>
          <artwork align="center"><![CDATA[           Option   Option       Option 
            Type   Data Len       Data 
         +--------+--------+-------------------------+ 
         |BBCTTTTT|00000100| 4-octet VTN Resource ID | 
         +--------+--------+-------------------------+ 
             Figure 1. The format of VTN Option]]></artwork>
        </figure></t>

      <t>Option Type: 8-bit identifier of the type of option. The type of VTN
      option is to be assigned by IANA. The highest-order bits of the type
      field are defined as below:</t>

      <t><list style="symbols">
          <t>BB 00 The highest-order 2 bits are set to 00 to indicate that a
          node which does not recognize this type will skip over it and
          continue processing the header.</t>

          <t>C 0 The third highest-order bit are set to 0 to indicate this
          option does not change en route.</t>
        </list></t>

      <t>Opt Data Len: 8-bit unsigned integer indicates the length of the
      option Data field of this option, in octets. The value of Opt Data Len
      of VTN option SHOULD be set to 4.</t>

      <t>VTN Resource ID: 4-octet identifier which uniquely identifies the set
      of network resources allocated to a VTN.</t>

      <t>Editor's note: The length of the VTN Resource ID is defined as
      4-octet in correspondence to the 4-octet Single Network Slice Selection
      Assistance Information (S-NSSAI) defined in 3GPP <xref
      target="TS23501"/>.</t>

      <t><figure>
          <artwork align="center"><![CDATA[             8-bit              24-bit 
        +------------+-------------------------+ 
        |    SST     |   Slice Differentiator  | 
        +------------+-------------------------+ 
            Figure 2. The format of S-NSSAI]]></artwork>
        </figure></t>
    </section>

    <section title="Procedures">
      <t>As the VTN option needs to be processed by each node along the path
      for VTN-specific forwarding, it SHOULD be carried in IPv6 Hop-by-Hop
      options header when the Hop-by-Hop options header can be either
      processed or ignored in forwarding plane by all the nodes along the
      path.</t>

      <section title="VTN Option Insertion">
        <t>When an ingress node of an IPv6 domain receives a packet, according
        to the traffic classification or mapping policy, the packet is steered
        into one of the VTNs in the network, then the packet SHOULD be
        encapsulated in an outer IPv6 header, and the Resource ID of the VTN
        which the packet is mapped to SHOULD be carried in the VTN option of
        the Hop-by-Hop options header associated with the outer IPv6
        header.</t>
      </section>

      <section title="VTN based Packet Forwarding">
        <t>On receipt of a packet with the VTN option, each network node which
        can process the VTN option in fast path SHOULD use the VTN Resource ID
        to determine the set of local network resources allocated to the VTN
        for packet processing. The packet forwarding behavior is based on both
        the destination IP address and the VTN Resource ID. More specifically,
        the destination IP address is used to determine the next-hop and the
        outgoing interface, and VTN Resource ID is used to determine the set
        of network resources on the outgoing interface which are reserved to
        the VTN for processing and sending the packet. The Traffic Class field
        of the outer IPv6 header MAY be used to provide Diffserv treatment for
        packets which belong to the same VTN. The egress node of the IPv6
        domain SHOULD decapsulate the outer IPv6 header which includes the VTN
        option.</t>

        <t>In the forwarding plane, there can be different approaches of
        partitioning the local network resources and allocating them to
        different VTNs. For example, on one physical interface, a subset of
        the forwarding plane resources (e.g. the bandwidth and the associated
        buffer and queuing resources) can be allocated to a particular VTN and
        represented as a virtual sub-interface with reserved bandwidth
        resource. In packet forwarding, the IPv6 destination address of the
        received packet is used to identify the next-hop and the outgoing
        layer-3 interface, and the VTN Resource ID is used to further identify
        the virtual sub-interface which is associated with the VTN on the
        outgoing interface.</t>

        <t>Network nodes which do not support the processing of Hop-by-Hop
        options header SHOULD ignore the Hop-by-Hop options header and forward
        the packet only based on the destination IP address. Network nodes
        which support Hop-by-Hop Options header, but do not support the VTN
        option SHOULD ignore the VTN option and continue to forward the packet
        based on the destination IP address and MAY also based on the rest of
        the Hop-by-Hop Options.</t>
      </section>
    </section>

    <section title="Operational Considerations">
      <t>As described in <xref target="RFC8200"/>, network nodes may be
      configured to ignore the Hop-by-Hop Options header, and in some
      implementations a packet containing a Hop-by-Hop Options header may be
      dropped or assigned to a slow processing path. The proposed modification
      to the processing of IPv6 Hop-by-Hop options header is specified in
      <xref target="I-D.ietf-6man-hbh-processing"/>. Operator needs to make
      sure that all the network nodes involved in a VTN can either process
      Hop-by-Hop Options header in the fast path, or ignore the Hop-by-Hop
      Option header. Since a VTN is associated with a logical network
      topology, it is practical to ensure that all the network nodes involved
      in that logical topology support the processing of the HBH options
      header and the VTN option. In other word, packets steered into a VTN
      MUST NOT be dropped due to the existence of the Hop-by-Hop Options
      header. It is RECOMMENDED to configure all the network nodes involved in
      a VTN to process the Hop-by-Hop Options header and the VTN option if
      there is a nob for this.</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>This document requests IANA to assign a new option type from
      "Destination Options and Hop-by-Hop Options" registry.</t>

      <t><figure>
          <artwork><![CDATA[   Value   Description     Reference 
   --------------------------------------
   TBD     VTN Option      this document ]]></artwork>
        </figure></t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>The security considerations with IPv6 Hop-by-Hop options header are
      described in <xref target="RFC8200"/>, <xref target="RFC7045"/> and
      <xref target="I-D.ietf-6man-hbh-processing"/>. This document introduces
      a new IPv6 Hop-by-Hop option which is either processed in the fast path
      or ignored by network nodes, thus it does not introduce additional
      security issues.</t>
    </section>

    <section title="Contributors">
      <t><figure>
          <artwork><![CDATA[   Zhibo Hu  
   Email: huzhibo@huawei.com 
    
   Lei Bao
   Email: baolei7@huawei.com
]]></artwork>
        </figure></t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>The authors would like to thank Juhua Xu, James Guichard, Joel
      Halpern and Tom Petch for their review and valuable comments.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119"?>

      <?rfc include='reference.RFC.8174'?>

      <?rfc include='reference.RFC.8200'?>

      <?rfc include='reference.I-D.ietf-teas-enhanced-vpn'?>
    </references>

    <references title="Informative References">
      <reference anchor="TS23501"
                 target="https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=3144">
        <front>
          <title>3GPP TS23.501</title>

          <author>
            <organization/>
          </author>

          <date year="2016"/>
        </front>
      </reference>

      <?rfc include='reference.RFC.4915'?>

      <?rfc include='reference.RFC.5120'?>

      <?rfc include='reference.RFC.7045'?>

      <?rfc include='reference.I-D.dong-teas-enhanced-vpn-vtn-scalability'?>

      <?rfc include='reference.I-D.ietf-6man-hbh-processing'?>

      <?rfc include='reference.I-D.ietf-lsr-flex-algo'?>
    </references>
  </back>
</rfc>
