<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?rfc strict="yes"?>
<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-huang-rtgwg-standalone-sid-framework-00" ipr="trust200902" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.19.1 -->
  <!-- ***** FRONT MATTER ***** -->

    <front>
    <title abbrev="L3 Standalone Service ID Framework">L3 Standalone Service ID Framework</title>
    <seriesInfo name="Internet-Draft" value="draft-huang-rtgwg-standalone-sid-framework-00"/>
    <author fullname="Daniel Huang" initials="D" surname="Huang">
      <organization>ZTE Corporation</organization>
      <address>
	  <postal>
          <country>China</country>
        </postal>
        <email>huang.guangping@zte.com.cn</email>
        <!-- uri and facsimile elements may also be added -->
            </address>
    </author>
	
	<author fullname="Feng Yang" initials="F" surname="Yang">
      <organization>China Mobile</organization>
      <address>
	  <postal>
          <country>China</country>
        </postal>
        <email>yangfeng@chinamobile.com</email>
        <!-- uri and facsimile elements may also be added -->
            </address>
    </author>

    <author fullname="Ge Chen" initials="G" surname="Chen">
      <organization>China Telecom</organization>
      <address>
	  <postal>
          <country>China</country>
        </postal>
        <email>chengg55@chinatelecom.cn</email>
        <!-- uri and facsimile elements may also be added -->
            </address>
    </author>
	
    <author fullname="Yan Zhang" initials="Y" surname="Zhang">
      <organization>China Unicom</organization>
      <address>
	  <postal>
          <country>China</country>
        </postal>
        <email>zhangy1156@chinaunicom.cn</email>
        <!-- uri and facsimile elements may also be added -->
            </address>
    </author>
    
    <author fullname="Dong Yang" initials="D" surname="Dong">
      <organization>Beijing Jiaotong University</organization>
      <address>
	  <postal>
          <country>China</country>
        </postal>
        <email>dyang@bjtu.edu.cn</email>
        <!-- uri and facsimile elements may also be added -->
            </address>
    </author>
   
    <date day="7" month="July" year="2024"/>
    <area>Routing Area</area>
    <workgroup>RTGWG</workgroup>
    <keyword>L3 Standalone Service ID Framework</keyword>
    <abstract>
      <t>In the scenarios of both client to service and service to service interconnections, the host-oriented addressing mechanism turns out to be ineffective, and employment of a standalone service ID in routing network could facilitate the fine-grained interfaces of underlay networking capabilities, as well as cross connections among services residing at multiple sites. </t>
    </abstract>
  </front>
  <!-- ***** MIDDLE MATTER ***** -->

    <middle>
    <section numbered="true" toc="default">
      <name>Introduction</name>
      <t>The host-oriented addressing mechanism has been running well without significant gaps, and it is also the designing philosophy of routing network to be unaware of the services. Nevertheless, the computing deployment starts migrating from centralized DCs to edge sites, thus the networking topology under which these edge service sites have been interconnected has migrates too. The magnitude of cross-connections among the service sites increases exponentially with architectural significance. The assumption that every function of an application or service would be instantiated at a single DC site would not be true because of the limited capabilities of the edge sites while it would be realistic to disaggregate the applications and instantiate different functions at different edge sites. The underlay routing network needs to adapt the emerging service deployment pattern and address the gaps demonstrated in <xref target="I-D.huang-rtgwg-us-standalone-sid" format="default"/>. </t>
      <t>An L3 standalone service ID thus is employed against the above scenarios as well as gaps. Traditional 5 tuples have been utilized to identify service flows while they could not be able to directly indicate the service itself. Particularly, both IP address and port are host-related identifications. Nonetheless, the service or fundamental networking capabilities (as a service) is always host and device independent. Therefore, L3 service ID in this proposal is designed to be a standalone entity against 5 tuples in the first place, and it would be a new architectural entity in the routing network.</t>
      <t>The framework demonstrates how L3 standalone servcie ID is positioned in routing network in terms of both functional enhancement of the existing networking entities and the new interfaces. Work flows would also be illustrated.</t>
    </section>
    <section numbered="true" toc="default">
      <name>Requirements Language</name>
      <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" format="default"/>
        <xref target="RFC8174" format="default"/> when, and only when, they appear in all capitals, as
                shown here.</t>
    </section>
    <section numbered="true" toc="default">
      <name>Terminology</name>
      <ul spacing="normal">
        <li>
          <t>SSR: Standalone Service ID-enabled Router</t>
        </li>
        <li>
          <t>Service Point: service operation entity which either initiates a service request or execute the service functions. Service point could be the client terminal, CPE, server terminal and service proxy etc.</t>
        </li>
        <li>
          <t>SGW: Service Gateway</t>
        </li>
        <li>
          <t>SPX: Service Proxy</t>
        </li>
        <li>
          <t>S-ID: standalone service ID</t>
        </li>
      </ul>
    </section>
    <section numbered="true" toc="default">
      <name>L3 standalone service ID in network entities</name>
      <t>L3 standalone service ID is employed as an independent entity against the 5-tuples, so it could be instantiated at selected network entities to enable the enhanced routing and forwarding capabilities. The standalone service ID-enabled network framework is demonstrated in figure 1.</t>
		<figure>
          <name>The standalone service ID-enabled network framework</name>
            <artwork align="center" name="" type="" alt=""><![CDATA[

                  +------------------------------------+
                  |  Service  ID  governance  system   |
                  +------------------+-----------------+
                                     |
                                     |
+------------------------------------v---------------------------------+
|                   Service  ID  for  multi-entity                     |
+---+-----------------+--------------------------+-----------------+---+
    |                 |                          |                 |
    |                 |                          |                 |
+---v---+             |                          |             +---v---+
|+-----+|             |                          |             |+-----+|
||S-ID ||             |                          |             ||S-ID ||
||in L4||             |                          |             ||in L4||
|+-----+|  +----------v-----------+  +-----------v----------+  |+-----+|
|+-----+|  |+--------+  +--------+|  |+--------+  +--------+|  |+-----+|
||S-ID ||  ||  S-ID  |  |  S-ID  ||  ||  S-ID  |  |  S-ID  ||  ||S-ID ||
||in L3||<->|sublayer|  |sublayer||<->|sublayer|  |sublayer||<->|in L3||
|+-----++  |+----^---+  +-----^--+|  |+----^---+  +----^---+|  |+-----+|
|       |  |     |            |   |  |     |           |    |  |       |
|+-----+|  |+----v---+  +-----v--+|  |+----v---+  +----v---+|  |+-----+|
||     ||  ||Underlay|  |Underlay||  ||Underlay|  |Underlay||  ||     ||
|+-----+|  |+--------+  +--------+|  |+--------+  +--------+|  |+-----+|
|Service|  |   SSR          SSR   |  |   SSR         SSR    |  |Service|
| Point |  | ingress1     egress1 |  | ingress2    egress2  |  | Point |
+-------+  +----------------------+  +----------------------+  +-------+
                        AS1                          AS2        

                ]]></artwork>
        </figure>

        <section numbered="true" toc="default">
          <name>Service ID for the governance system</name>
          <t>L3 standalone service ID is designed to indicate a selected and specified set of both fundamental networking capabilities and service types. Therefore it should be governed by a controlled system where the life cycle of service ID would be controlled and managed. Registration, publishing and subscribing among users, service and networking capability providers would be managed by the governance system. Service ID-related policies would be configured and managed between the governance system and the selected networking nodes.</t>
        </section>
        <section numbered="true" toc="default">
          <name>Service ID for service points</name>
			<section numbered="true" toc="default">
			  <name>Service ID for client terminal</name>
			  <t>Client terminal subscribes the service ID from the governance system and labels the service traffic with the service ID, which explicitly indicates to the underlay network the service intention in terms of its specific requirements. In particular, the service ID could also be instantiated at CPE.</t>
			</section>
			<section numbered="true" toc="default">
			  <name>Service ID for service terminal</name>
			  <t>The service terminal would terminates the service traffic flow and might initiate the next service request upon the service ID from the first service traffic flow.</t>
			</section>
			<section numbered="true" toc="default">
			  <name>Service ID for service Gateway</name>
			  <t>Traditionally, the service gateway in the DC site always terminates the service flow and reestablish a service session as a proxy of the client terminal. However, L3 standalone service ID labeling the service traffic might remain in the user packet header (such as encapsulated in IPv6 extension header), so the service traffic could be forwarded and delivered by the service ID.</t>
			</section>
			<section numbered="true" toc="default">
			  <name>Service ID for service Proxy</name>
			  <t>Similar to the service gateway, service proxy (such as side car in service mesh) terminates the service traffic. Nonetheless, the service ID-associated scheduling policies might be maintained at the service proxy to enable the multiple service function chain connections.</t>
			</section>
        </section>
        <section numbered="true" toc="default">
          <name>Service ID for network edge nodes</name>
          <t>When the service traffic arrives at SSR which always resides at the network edge, SSR would forward the service traffic by indexing the specified policy in terms of service ID. SSR could maintain service ID indexed policies from the service ID management and control system or initiate the forwarding policy by the first packet of the traffic as well as the service ID.</t>
        </section>
    </section>
    <section numbered="true" toc="default">
        <name>Service ID as new interfaces</name>
        <t>As an independent entity in layer 3 network, the service ID could be rendered as interfaces to multiple parties. </t>
        <section numbered="true" toc="default">
          <name>Interface to service sites</name>
          <t>When the service ID is explicitly representative of the very service which resides in the DC site, it could be instantiated as an interface to the service-associated status, the underlay network as well as the governance system could be aware of this status information indexed by the service ID.</t>
        </section>
        <section numbered="true" toc="default">
          <name>Interface to client terminal</name>
		  <t>Client terminal accesses the service through the host address upon which the service resides, however, the underlay network could not be aware of the service simply through the host address. So the standalone service ID could be an interface for the client terminal to request the service specific routing and forwarding. Other than the URL link, the client terminal access the service specific networking service through the service ID in the service traffic.</t>
          </section>
        <section numbered="true" toc="default">
            <name>Interface to underlay network capabilities</name>
            <t>The fundamental underlay network capabilities such as bandwidth, latency, jitter and loss could be templates which are indicated by the service ID. So the service ID in the service traffic could be interface to the underlay networking capabilities.</t>
            <t>When the service is registered from a computing site and is selected as the one that requires the service specific networking capabilities, the service ID could be an interface and index to the specified networking policies.</t>
        </section>
    </section>
    <section numbered="true" toc="default">
      <name>Service ID for control plane</name>
      <t>The service ID is governed and controlled to ensure the end to end service delivery. The control plane acquires the service requirements from the governance system which maintains the service profile, and accordingly tailors the networking policies for the service and renders them as the service ID-indexed policies. Moreover, the policy could be extended beyond networking (e.g. computing-aware routing policy).</t>
      <t>In the case of service traffic forwarding across multiple domains (Autonomous System) as illustrated in figure 1, the control plane might manage and control different sets of service ID in terms of different domains and ensure smooth mapping to guarantee the consistency of the service profiles.</t>
    </section>
	<section numbered="true" toc="default">
      <name>Service ID for data plane</name>
      <t>The service ID is specifically designed to label the service traffic to indicate the service type, therefore the service ID should be explicitly rendered in data plane. Particularly, the IPv6 header and extension header could be candidate home for the service ID. Balance of benefits and loss should be carefully kept in terms of the deployment models.</t>
    </section>

    <section numbered="true" toc="default">
      <name>Work flow</name>
      <t>As stated in the use cases and requirements, the standalone service ID enables enhanced capabilities in both south-north and east-west traffic forwarding scenarios, two of the work flows would be demonstrated as in figure 2.</t>
	  	<figure>
        <name>work flows of south-north and east-west service traffic forwarding</name>
            <artwork align="center" name="" type="" alt=""><![CDATA[

                                                            
+----------------------------------------------------------+
|                  Service  ID  governance-esystem         |
+------+------------+--------------+----------------+------+
       |            |              |                |       
       |            |              |                |       
       |            |        +-----+----+     +-----+----+  
       |            |        | DC site1 |     | DC site3 |  
       |            |        +----------+     +----------+  
       |            |        | SGW/SPX  |     | SGW/SPX  |  
       |            |        +-----^----+     +----------+  
       |            |              |                        
       |            |          +---v--+         +------+    
       |            |      +-->| SSR1 |         | SSR3 |    
       |            |      |   +---+--+         +------+    
 +-----+----+   +---+---+  |       |                        
 | Terminal +-->| SSR-I +--+       |                        
 +----------+   +-------+      +---v--+         +------+    
                               | SSR2 +-------->| SSR4 |    
                               +---^--+         +---+--+    
                                   |                |       
                             +-----v----+      +----v-----+ 
                             | SGW/SPX  |      | SGW/SPX  | 
                             +----------+      +----------+ 
                             | DC site2 |      | DC site4 | 
                             +----------+      +----------+ 
                ]]></artwork>
          </figure>

        <section numbered="true" toc="default">
          <name>Work flow of south-north traffic</name>
          <t>The terminal acquires the service ID through subscription from the service ID governance system and encapsulates it in its L3 IPv6 header. The service traffic labeled with the service ID arrive at the ingress SSR-I which maintains the service ID specific forwarding policy, e.g. 50Mbps guaranteed VPN tunnel for the service traffic. SSR-I forwards the service traffic accordingly. In particular, when the specified service resides at both DC site1 and DC site2, SSR-I could couple the networking policy with the service site status, and forward the service traffic to the selected DC site1.</t>
        </section>
        <section numbered="true" toc="default">
          <name>Work flow of east-west traffic</name>
          <t>The service to service interconnection would always be rendered as part of the end to end south-north service traffic forwarding. Nevertheless, the forwarding patterns as well as the specific process is distinguished from the client to service connection. </t>
		  <t>The service residing at DC site 1 needs to initiate a service traffic to the second service residing at DC site2 and the end to end service process would be terminated at the third service at DC site4. From perspective of the underlay routing network, there are actually 2 different routing process between SRR1 and SRR2, SRR2 and SRR4. As the standalone service ID instantiated at the service traffic, significant forwarding performance benefits could be gained with the coordination of the service ID governance system. The service point at DC site1 renders the service ID in the traffic, and when it arrive at SRR1 which could forward the service traffic by the service ID specific policy to SRR2. The SPX of SRR2 will deliver the service traffic to the second service by the L3 service ID and maintain the service ID metadata for the next service request. After the service traffic is processed, another associated service request would be initiated and arrive at the SPX which would establish another service ID and render it in the service traffic through the metadata of the the previous service ID. SRR4 would forward the traffic as the same way as SRR2. From the perspective of the end to end application and service, a consistent and fine-grained networking guarantee enables experience and quality of service which would not be likely otherwise.</t>
        </section>
  
    </section>
    <section numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>TBD.</t>
    </section>
    <section anchor="IANA" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>TBA</t>
    </section>
  </middle>
  <!--  *****BACK MATTER ***** -->

    <back>
    <references>
      <name>Normative References</name>
      <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
      <reference anchor="I-D.huang-rtgwg-us-standalone-sid" target="https://datatracker.ietf.org/doc/html/draft-huang-rtgwg-us-standalone-sid-01" xml:base="https://bib.ietf.org/public/rfc/bibxml-ids/reference.I-D.huang-rtgwg-us-standalone-sid.xml">
		<front>
		<title>Use Cases-Standalone Service ID in Routing Network</title>
		<author fullname="Daniel Huang" initials="D." surname="Huang">
		<organization>ZTE Corporation</organization>
		</author>
		<author fullname="Jie Liang" initials="J." surname="Liang">
		<organization>China Telecom</organization>
		</author>
		<author fullname="Feng Yang" initials="F." surname="Yang">
		<organization>China Mobile</organization>
		</author>
		<author fullname="Yan Zhang" initials="Y." surname="Zhang">
		<organization>China Unicom</organization>
		</author>
		<author fullname="Dong Yang" initials="D." surname="Yang">
		<organization>Beijing Jiaotong University</organization>
		</author>
		<date day="1" month="July" year="2024"/>
		<abstract>
		<t>More and more emerging applications have raised the demand for establishing networking connections anywhere and anytime, alongside the availability of highly distributive any-cloud services. Such a demand motivates the need to efficiently interconnect heterogeneous entities, e.g., different domains of network and cloud owned by different providers to reduce cost, e.g., overheads and end-to-end latency, while ensuring the overall performance satisfies the requirements of the applications. Considering that different network domains and cloud providers may adopt different types of technologies, the key to interconnection and efficient coordination is to employ a unified interface that can be understood by heterogeneous parties, which could derive the consistent requirements of the same service and treat the service traffic appropriately by their proprietary policies and technologies. This document provides use cases and problem statements from two main Internet traffic categories: one is the traditional north-south traffic which is defined from clients to entities (such as servers or DCs), and the other is east-west traffic, which refers to traffic between entities (such as inter-server or inter- service).Furthermore,the requirements for a standalone Service ID are also detailed in this document.</t>
		</abstract>
		</front>
		<seriesInfo name="Internet-Draft" value="draft-huang-rtgwg-us-standalone-sid-01"/>
      </reference>
    </references>
  </back>
</rfc>
