<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.19 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-li-dyncast-architecture-08" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.15.3 -->
  <front>
    <title abbrev="Dyncast Architecture">Dynamic-Anycast Architecture</title>
    <seriesInfo name="Internet-Draft" value="draft-li-dyncast-architecture-08"/>
    <author initials="Y." surname="Li" fullname="Yizhou Li">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>liyizhou@huawei.com</email>
      </address>
    </author>
    <author initials="L." surname="Iannone" fullname="Luigi Iannone">
      <organization>Huawei Technologies</organization>
      <address>
        <email>Luigi.iannone@huawei.com</email>
      </address>
    </author>
    <author initials="D." surname="Trossen" fullname="Dirk Trossen">
      <organization>Huawei Technologies</organization>
      <address>
        <email>dirk.trossen@huawei.com</email>
      </address>
    </author>
    <author initials="P." surname="Liu" fullname="Peng Liu">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>liupengyjy@chinamobile.com</email>
      </address>
    </author>
    <author initials="C." surname="Li" fullname="Cheng Li" role="editor">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>c.l@huawei.com</email>
      </address>
    </author>
    <date year="2023" month="January" day="17"/>
    <area>Routing area</area>
    <workgroup>rtgwg</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document describes an architecture for the Dynamic-Anycast (Dyncast). It includes an architecture overview, main components, and the workflow of control plane and dataplane.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>Edge computing has been expanding from single edge nodes to multiple networked collaborating edge nodes to solve the issues like response time, resource optimization, and network efficiency.</t>
      <t>The current network architecture in edge computing provides relatively static service dispatching, often to the closest edge from an IGP perspective, or to the server with the most computing resources without considering the network status, and even sometimes just based on static configuration.</t>
      <t>As described in <xref target="I-D.liu-can-ps-usecases"/>,traffic steering that takes into account computing resource metrics would benefit several use-cases, such as AR/VR. This document provides an architectural framework, which will enable compute- and network-aware traffic steering decisions in edge computing.</t>
      <t>The Dyncast architecture proposed in this document is an ingress-based overlay architecture for the selection of a suitable service instance from a set of possibly several ones, where 'suitable' may be determined through a combination of networking and computing related metrics.</t>
      <t>Dyncast assumes that there are multiple service instances running on different edge nodes, globally providing one single service. A single edge may have limited computing resources available, and different edges likely have different resources available, such as CPU or GPU.</t>
      <t>The main principle of Dyncast is that multiple edge nodes are interconnected and collaborate with each other to achieve a holistic objective of dispatching service demands, by taking into account both service instances status as well as network state (e.g., paths length, price and their congestion).</t>
      <t>This document describes an architecture to realize Dyncast, the workflow of main procedures in control and data plane.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <ul spacing="normal">
        <li>Dyncast: As defined in <xref target="I-D.liu-can-ps-usecases"/>, Dynamic Anycast, taking the dynamic nature of computing resource metrics into account to steer an anycast routing decision.</li>
        <li>Service: As defined in <xref target="I-D.liu-can-ps-usecases"/>, a monolithic functionality that is provided by an endpoint according to the specification for said service. A composite service can be built by orchestrating monolithic services.</li>
        <li>Service instance: As defined in <xref target="I-D.liu-can-ps-usecases"/>, running environment (e.g., a node) that makes the functionality of a service available. One service can have several instances running at different network locations.</li>
        <li>D-Router: A node supporting Dyncast functionalities as described in this document. Namely it is able to understand both network-related and service-instances-related metrics, take forwarding decision based upon and maintain instance affinity, i.e., forwards packets belonging to the same service demand to the same instance.</li>
        <li>Ingress D-Router: a service access point for Dyncast clients. It makes the routing decision to encapsulate the service packets into an overlay path to an Egress D-Router linked to the most suitable edge site/instance.</li>
        <li>Egress D-Router: An Egress D-Router is the egress endpoint of an overlay path.</li>
        <li>D-MA: Dyncast Metric Agent (D-MA): A dyncast specific agent able to gather and send metric updates (from both network and instance perspective) but not performing forwarding decisions. May run on a D-Router, but it can be also implemented as a separate module (e.g., a software library) collocated with a service instance.</li>
        <li>D-SID: Dyncast Service ID, an identifier representing a service, which the clients use to access said service. Such identifier identifies all of the instances of the same service, no matter on where they are actually running. D-SID is independent of which service instance serves the service demand. Usually multiple instances provide a (logically) single service, and service demands are dispatched to the different instance through an anycast model, i.e., choosing one instance among all available instances.</li>
        <li>D-BID: Dyncast Binding ID, an address to reach a service instance for a given D-SID. It is usually a unicast IP where service instances are attached. Different service instances provide the same service identified through D-SID but with different Dyncast Binding IDs.</li>
        <li>Service demand: The demand for a specific service and addressed to a specific D-SID.</li>
        <li>Service request: The request for a specific service instance.</li>
      </ul>
      <section anchor="requirements-language">
        <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"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>
      </section>
    </section>
    <section anchor="architecture-and-concepts">
      <name>Architecture and Components</name>
      <t>Dyncast assumes that there are multiple equivalent service instances running on different edge sites, providing one single service which is represented by D-SID. The network will take forwarding decision for the service demand from the client according to both service instances status as well as network status. The architecture is shown below.</t>
      <figure anchor="fig-Dyncast-arch">
        <name>Dyncast Architecture.</name>
        <artwork><![CDATA[
    edge site 1                              edge site 2

     +------------+                          +------------+
   +------------+ |                        +------------+ |
   |  service   | |                        |  service   | |
   |  instance  |-+                        |  instance  |-+
   +------------+                          +------------+
         |                                        |
    +----------+                                  |
    |   D-MA   |                                  |
    +----------+                                  |
         |                                   +----------+
         |           +-----------------+     |   D-MA   |
    +----------+     |     Underlay    |     +----------+
    |D-Router 1| ----|  Infrastructure |---- |D-Router 3|
    +----------+     |                 |     +----------+
                     +-----------------+
                              |
                              |
                         +----------+
       +---------------- |D-Router 2|--------------+
       |                 +----------+              |
       |                       |                   |
       |                       |                   |
      +-----+              +------+            +------+
    +------+|            +------+ |          +------+ |
    |client|+            |client|-+          |client|-+
    +------+             +------+            +------+
]]></artwork>
      </figure>
      <t>Edge sites (edges for short) are normally the sites where edge computing is performed. Service instances are initiated at different edge sites. Thus, a single service can actually have a significant number of instances running on different edges. A Dyncast Service ID (D-SID) is used to uniquely identify a service (e.g., a matrix computation for face recognition, or a game server). Service instances can be hosted on servers, virtual machines, access routers or gateway in edge data center.</t>
      <t>Close to (one or more) Service instances is the Dyncast Metric Agent (D-MA). This element has the task to gather information about resources and status of the different instances as well as network-related information. The information of resource and status will be presented as one or more metrics and associate with the D-SID. D-MAs also need to send the D-SID routes with computing-related metrics to the Egress D-Routers proactively. A D-MA may also run in a dyncast-enable router (named D-Router), while other deployment scenarios may lead to this element running separately on edge nodes. In the case of running in a D-Router, the D-SID routes with computing-related metrics can be synchronized up within the system.</t>
      <t>The D-Router is the main element in a Dyncast network. There are two types of D-Routers: Egress D-Router and Ingress D-Router.</t>
      <ul spacing="normal">
        <li>Egress D-Router: An Egress D-Router is the egress endpoint of an overlay path. It distributes information on D-SID metrics, as well as information of identifying the Egress D-Router, to the associated Ingress D-Routers. Normally, a site may be linked to one or more Egress D-routers.</li>
        <li>Ingress D-Router: a service access point for Dyncast clients. It will receive the information on D-SIDs metrics and egress D-Routers as distributed from associated Egress D-Routers, and generate the routing decision based on the network-related and computing-related metrics. Some network metrics can be learned on the ingress D-Router by detecting, such as the latency and bandwidth from the ingress to an egress D-Router. Usually, the routing decision will indicate the Ingress D-Router to encapsulate the service packets into an overlay path to an Egress D-Router linked to the most suitable edge site/instance.</li>
      </ul>
      <t>Note: Depending on deployment requirements, per-instance computing-related metrics or per-site aggregated computing-related metrics can be used in routing decision. In deployment, using per-site aggregated computing-related metrics is a more practical choice.</t>
      <t>When a service packet is decapsulated on an Egress D-Router, it will be sent to the service instance within the edge site by looking up the destination address in the FIB.</t>
      <t>Within the edge site, Load balancing and/or NAT may be used if needed. When using NAT, the D-SID will be translated into a unicast address associated to a specific service instance, and this unicast address is called D-BID(Dyncast Binding ID). There is no needed to configure a B-SID for a service instance if NAT is not needed.</t>
      <t>In <xref target="fig-Dyncast-arch"/>, the "underlay infrastructure" indicates the general IP infrastructure that does not need to support Dyncast. The Dyncast routes will be distributed among the overlay D-Routers, and will not affect the underlay nodes. An implementation may use an IP protocol or an IT solution in Layer 3, Layer 3.5, Layer 4 or even Layer 7 to distribute the Dyncast routes with computing-related metrics. This document will not define a specific solution in current stage.</t>
      <t>The above text describe a distributed architecture of Dyncast. However, a centralized architecture can also work. In the centralized architecture, the computing-related metrics from the Egress D-Routers or D-MAs are collected by a centralized controller/PCE. Considering both the network-related metrics and computing-related metrics, the Controller/PCE can calculate the best path for a D-SID and send it to the related Ingress D-Router. An implementation may use an IP protocol or an IT solution in Layer 3, Layer 3.5, Layer 4 or even Layer 7 to collect the Dyncast routes with computing-related metrics. This document will not define a specific solution in current stage.</t>
    </section>
    <section anchor="dyncast-architecture-workflow">
      <name>Dyncast Architecture Workflow</name>
      <t>The following section provides an overview of how the Dyncast solution works in the distributed architecture.</t>
      <section anchor="service-announcements">
        <name>Service Announcements</name>
        <t>Normally, a service is associated with an IP address, which can be an IPv6 address. In Dyncast, this IP address is called D-SID, and it can be used by multiple service instances, which makes it as an Anycast address in routing. This address can be learned via DNS resolution or other mechanisms, this document will not limit this.</t>
      </section>
      <section anchor="metric-distributions">
        <name>Metric Distributions</name>
        <t>As described above, a D-MA will collect computing-related metrics and associates the metrics to a related D-SID route. It will also send the D-SID route with the metrics to the connected Egress D-Router. The Egress D-Router will distribute the D-SID route with the metrics to the related Ingress D-Routers. The metrics include the computing-related metrics and potential other network metrics if needed.</t>
        <t>As explained in the problem statement document <xref target="I-D.liu-can-ps-usecases"/>, computing metrics may change very frequently, when and how frequent such information should be distributed should be determined also in accordance with the distribution protocol used for such purpose. A spectrum of approaches can be employed, such as interval based updates, threshold triggered updates, policy based updates, etc.</t>
        <t>The following example is provided for better understanding of how Dyncast metrics are distributed. Routes of D-SID1 and D-SID2 with related metrics are sent from the D-MA to D-Router 2. D-Router 2 generates overlay routes of D-SID1 and D-SID2, and distribute them to the associated Ingress D-Router 1.</t>
        <figure anchor="fig-Dyncast-example-overlay">
          <name>Dyncast deployment example.</name>
          <artwork><![CDATA[
 D-SID: Dyncast Service ID
                                                       +-------+
                                                     +-------+ |           
                                                     |Clients|-+         +-------+ 
                                                     +-------+        +--|D-SID 1| instance 1
                                                         |            |  +-------+
                                                   +----------+----+  |              Edge 2 
                                                   |D-Router 2|D-MA|--|    
          Dyncast Forwarding Table                 +----------+----+  |  +-------+ 
 D-SID 1, <metrics>, overlay path to D-router 2          |            +--|D-SID 2| instance 2
 D-SID 2, <metrics>, overlay path to D-router 2  +----------------+      +-------+
 D-SID 1, <metrics>, overlay path to D-router 3  |                |
 D-SID 2, <metrics>, overlay path to D-router 3  |                |
 +------+     +----------+                       |    Underlay    |
 |Client|-----|D-Router 1|-----------------------| Infrastructure |   
 +------+     +----------+                       |                |
                                                 |                |      
                                                 |                |        +-------+          
                                                 +----------------+    +---|D-SID 2| instance 3
                                                         |             |   +-------+
                                                   +----------+     +------+            Edge 3  
                                                   |D-Router 3|-----| D-MA |  
                                                   +----------+     +------+  
                                                                       |   +-------+ 
                                                                       +---|D-SID 1| instance 4
                                                                           +-------+
                   <--------------------------------        <--------------
                 (Overlay route of D-SID 1, <metrics>)      (D-SID 1, <metrics>)
                 (Overlay route of D-SID 2, <metrics>)      (D-SID 2, <metrics>)
                     Service overlay route with metrics     Service route with metrics

]]></artwork>
        </figure>
      </section>
      <section anchor="service-demand-handling">
        <name>Service Demand Handling</name>
        <t>Ingress D-Routers can make their routing decision based on the received routes and metrics. The metrics include network-related metrics and computing-related metrics, while the network metrics can be learned by detecting on the ingress D-Router, and the computing-related metrics are learned from the received D-SID's routes. This document will not define any algorithm of making the routing decision. The routing decision may indicate the Ingress D-Router to encapsulate the service packets into an overlay path towards to the 'best' Egress D-Router. In the example provided in above figure, the Ingress D-Router 1 generate the routes of D-SID1 and D-SID2 with next hop as an overlay path to a specific Egress D-router 2 or D-Router 3.</t>
        <t>When a new service transaction starts, an initial service packet is sent from the client
to its Dyncast Ingress D-Router. Upon receiving the service packet, the ingress will forward the packets to the 'best' egress D-Router through an overlay path. When the service packet reaches the egress D-router, the outer header of the overlay encapsulation will be decapsulated and the inner service packet will be sent to the 'best' service instance.</t>
      </section>
      <section anchor="instance-affinity">
        <name>Instance Affinity</name>
        <t>Instance affinity is one of the key features that Dyncast should support. It means that packets from the same 'flow' for a service should always be sent to the same egress to be processed by the same service instance. The affinity is determined at the time of newly formulated service demand.</t>
        <t>Note: Different services may have different notions of what constitutes a 'flow' and may thus identify a flow differently. Typically a flow is identified by the 5-tuple value. However, for instance, an RTP video streaming may use different port numbers for video and audio, and it may be identified as two flows if 5-tuple flow identifier is used. However they certainly should be treated by the same service instance. Therefore a 3-tuple based flow identifier is more suitable for this case. Hence, it is desired to provide certain level of flexibility in identifying flows, or from a more general perspective, in identifying the set of packets for which to apply instance affinity. More importantly, the means for identifying a flow for the purpose of ensuring instance affinity must be application-independent to avoid the need for service-specific instance affinity methods.</t>
        <t>Specifically, Instance affinity information should be configurable on a per-service basis. For each service, the information can include the flow/packets identification type and means, affinity timeout value, and etc.</t>
        <t>This document will not define the specific mechanism of affinity, and it can be discussed in specific solution drafts.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The computing resource information changes over time very frequent with the creation and termination of service instance. When such information is carried in routing protocol, too many updates can make the network fluctuate. Control plane approach should take it into considerations.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>TBD</t>
    </section>
    <section anchor="contributors">
      <name>Contributors</name>
      <ul spacing="normal">
        <li>Huijuan Yao, yaohuijuan@chinamobile.com, China Mobile</li>
        <li>Xia Chen, jescia.chenxia@huawei.com, Huawei</li>
        <li>Jianwei Mao, maojianwei@huawei.com</li>
        <li>Hang Shi, shihang9@huawei.com, Huawei</li>
      </ul>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <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>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="I-D.liu-dyncast-ps-usecases" target="https://www.ietf.org/archive/id/draft-liu-dyncast-ps-usecases-04.txt" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.liu-dyncast-ps-usecases.xml">
          <front>
            <title>Dynamic-Anycast (Dyncast) Problem Statement and Use Cases</title>
            <author fullname="Peng Liu" initials="P." surname="Liu">
              <organization>China Mobile</organization>
            </author>
            <author fullname="Philip Eardley" initials="P." surname="Eardley">
              <organization>BT</organization>
            </author>
            <author fullname="Dirk Trossen" initials="D." surname="Trossen">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization>
            </author>
            <author fullname="Luis M. Contreras" initials="L. M." surname="Contreras">
              <organization>Telefonica</organization>
            </author>
            <author fullname="Cheng Li" initials="C." surname="Li">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Yizhou Li" initials="Y." surname="Li">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="8" month="July" year="2022"/>
            <abstract>
              <t>Many service providers have been exploring distributed computing techniques to achieve better service response time and optimized energy consumption. Such techniques rely upon the distribution of computing services and capabilities over many locations in the network, such as its edge, the metro region, virtualized central office, and other locations. In such a distributed computing environment, providing services by utilizing computing resources hosted in various computing facilities (e.g., edges) is being considered, e.g., for computationally intensive and delay sensitive services. Ideally, services should be computationally balanced using service-specific metrics instead of simply dispatching the service requests in a static way or optimizing solely connectivity metrics. For example, systematically directing end user-originated service requests to the geographically closest edge or some small computing units may lead to an unbalanced usage of computing resources, which may then degrade both the user experience and the overall service performance. We have named this kind of network with dynamic sharing of edge compute resources "Computing-Aware Networking" (CAN). This document provides the problem statement and the typical scenarios of CAN, which is to provide the service equivalency by steering traffic dynamically to the appropriate service instance based on the basic edge computing deployment.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-liu-dyncast-ps-usecases-04"/>
        </reference>
        <reference anchor="I-D.liu-can-ps-usecases" target="https://www.ietf.org/archive/id/draft-liu-can-ps-usecases-00.txt" xml:base="https://bib.ietf.org/public/rfc/bibxml-ids/reference.I-D.liu-can-ps-usecases.xml">
          <front>
            <title>Computing-Aware Networking (CAN) Problem Statement and Use Cases</title>
            <author fullname="Peng Liu" initials="P." surname="Liu">
              <organization>China Mobile</organization>
            </author>
            <author fullname="Philip Eardley" initials="P." surname="Eardley"/>
            <author fullname="Dirk Trossen" initials="D." surname="Trossen">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization>
            </author>
            <author fullname="Luis M. Contreras" initials="L. M." surname="Contreras">
              <organization>Telefonica</organization>
            </author>
            <author fullname="Cheng Li" initials="C." surname="Li">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Yizhou Li" initials="Y." surname="Li">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="23" month="October" year="2022"/>
            <abstract>
              <t>Many service providers have been exploring distributed computing techniques to achieve better service response time and optimized energy consumption. Such techniques rely upon the distribution of computing services and capabilities over many locations in the network, such as its edge, the metro region, virtualized central office, and other locations. In such a distributed computing environment, providing services by utilizing computing resources hosted in various computing facilities (e.g., edges) is being considered, e.g., for computationally intensive and delay sensitive services. Ideally, services should be computationally balanced using service-specific metrics instead of simply dispatching the service requests in a static way or optimizing solely connectivity metrics. For example, systematically directing end user-originated service requests to the geographically closest edge or some small computing units may lead to an unbalanced usage of computing resources, which may then degrade both the user experience and the overall service performance. We have named this kind of network with dynamic sharing of edge compute resources "Computing-Aware Networking" (CAN). This document provides the problem statement and the typical scenarios of CAN, which is to show the necessity of considering more factors when steering the traffic to the appropriate service instance based on the basic edge computing deployment to provide the service equivalency.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-liu-can-ps-usecases-00"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
A5pgYLIQV0s9hnNqJN/PQ4v9A5LjHLR7SwAA

-->

</rfc>
