<?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-07" 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-07"/>
    <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. A 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. A 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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
mmBgshBXSz2Gc2ok3y9Di/0v4Y5y7XlLAAA=

-->

</rfc>
