<?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.7.19 (Ruby 3.0.2) -->
<rfc category="std" consensus="true"
     docName="draft-gao-cats-service-announcement-00"
     ipr="trust200902" submissionType="IETF" version="3"
     xmlns:xi="http://www.w3.org/2001/XInclude">
  <!-- xml2rfc v2v3 conversion 3.23.2 -->

  <front>
    <title abbrev="CATS Service Announcement Methods">Service Announcement
    Methods for CATS</title>

    <seriesInfo name="Internet-Draft"
                value="draft-gao-cats-service-announcement-00"/>

    <author fullname="Shuai Gao" initials="S." surname="Gao">
      <organization>Beijing Jiaotong University</organization>

      <address>
        <postal>
          <city>Beijing</city>

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

        <email>shgao@bjtu.edu.cn</email>
      </address>
    </author>

    <author fullname="Zhenghao Hu" initials="Z." surname="Hu">
      <organization>Beijing Jiaotong University</organization>

      <address>
        <postal>
          <city>Beijing</city>

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

        <email>24110054@bjtu.edu.cn</email>
      </address>
    </author>

    <author fullname="Xiaoting Ma" initials="X." surname="Ma">
      <organization>China Telecom</organization>

      <address>
        <postal>
          <city>Beijing</city>

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

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

    <author fullname="Ziheng Xu" initials="Z." surname="Xu">
      <organization>China Telecom</organization>

      <address>
        <postal>
          <city>Beijing</city>

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

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

    <date day="3" month="November" year="2024"/>

    <area>routing</area>

    <workgroup>cats</workgroup>

    <keyword>Internet-Draft</keyword>

    <abstract>
      <?line 44?>

      <t>This document introduces network-layer service announcement solutions
      based on architecture defined in <xref target="I-D.ldbc-cats-framework"/>. In
      particular, the scheme describes how to disseminate computing service
      information to clients and the control plane through service
      announcement messages. This draft also proposes to classify the
      attributes used to describe computing services and analyzes several
      service querying mechanisms.</t>
    </abstract>
  </front>

  <middle>
    <?line 47?>

    <section anchor="announcement-intro">
      <name>Introduction</name>

      <t>As described in [draft-ietf-cats-framework-02], steering in CATS aims
      to select the suitable service contact instance(s) from a set of
      candidates. Particularly, the CATS architecture gives the
      exemplifications of the service announcement workflow for distributed
      design. However, the CATS framework does not provide the detailed
      description of the specific process of service announcement.
      Additionally, the application-layer DNS solutions for name resolution in
      CATS face challenges in adapting to high-frequency dynamic resolution
      and result in significant signaling overhead.</t>

      <t>This document proposes network-layer service announcement solutions
      for CATS based on identifier resolution and mapping, and classifies the
      attributes used to describe computing services. Several service querying
      mechanisms are further analyzed based on the proposed solutions.</t>
    </section>

    <section anchor="requirements-language">
      <name>Requirements Language</name>

      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
      "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
      NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>",
      "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
      "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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>

      <?line -18?>
    </section>
    

    <section anchor="terminology">
      <name>Terminology</name>

      <t>This document makes use of the terms defined in
      [draft-ietf-cats-framework-04]. In addition, the following terms are
      defined below:</t>

      <t><strong>Computing service Attributes (CSA):</strong> Attributes that
      multi-dimensionally describe the computing service.</t>

      <t><strong>Computing service Demand Attributes (CSDA):</strong>
      Attributes that describe the computing resources and network resources
      requirements of the computing service.</t>

      <t><strong>Computing service Information Attributes (CSIA):</strong>
      Attributes that detail the nature of the computing service and the
      methods of its provision.</t>
    </section>

    <section anchor="analysis-for-DNS-based-service-announcement">
      <name>Analysis for DNS-based service announcement</name>

      <t>The service announcement using the DNS mechanism involves the
      following two phases:</t>

      <t>Phase 1: When a computing service is instantiated at the service
      site, it sends a registration message to the domain name server, which
      includes the computing service's CS-ID and the network identifier of the
      service site.</t>

      <t>Phase 2: When a user requests a computing service, the CS-ID is sent
      to the domain name server for hierarchical querying to obtain the
      network identifier of the service site for communication.</t>

      <t>However, using the DNS mechanism for service announcements faces
      several challenges:</t>

      <t>The DNS mechanism is not designed for high-frequency resolution. When
      the client first requests a computing service with CS-ID, the mapping
      result is typically recorded and is used for subsequent requests until
      the cache expires. Due to the dynamic nature of computing resources at
      service sites, if the client continues to request the same site based on
      a cached copy, the site or its connecting links may be occupied, making
      it suboptimal for providing the CS-ID specified computing service.</t>

      <t>DNS service is normally at the application layer (Layer 7), and the
      signaling flow between the service site and the DNS server would
      introduce additional overhead. In CATS, a service site can provide
      multiple computing services and a single computing service could be
      accessed through multiple service sites. The resources occupied by one
      computing service at the service site may also affect the availability
      of other computing services. Thus, multiple edge sites need to
      frequently announce the services they provide and their availability to
      the DNS server, leading to network resource consumption.</t>

      <t>The resources of DNS servers are limited. Besides responding to
      client mapping requests, frequent interactions with service sites will
      consume a considerable amount of resources. Moreover, updating and
      checking the information database at a high refresh rate can potentially
      overload the servers.</t>
    </section>

    <section anchor="overview">
      <name>Overview</name>

      <t>As illustrated in Figure 1, a computing service is identified by a
      unique CS-ID and instantiated through multiple edge service sites to
      enable client access. CATS functional components are deployed at the
      ingress CATS-Forwarder and egress CATS-Forwarder, where the C-SMA is
      tasked with gathering the status of the service sites and service
      instances, and interfacing with the control plane. The control plane
      utilizes this information to perform service scheduling. When a user
      node connects to the network, to protect the privacy of users, the
      scheme employs a hashing algorithm to generate unique anonymous identity
      identifiers for each user during the registration process.</t>

      <figure anchor="fig-service-announcement-workflow">
      <name>CATS Service Announcement Workflow</name>
      <artwork name="" type="" align="left" alt=""><![CDATA[
                   +---------+                       |        
                   | Client  |                       |        
                   +----+----+                       |
                        |                            |
                        |                            |
               +--------+--------+                   |
               | CATS-Forwarder 1|                   |
               |--------+--------|                   |        
               |      C-NMA      |                   |        
               +--------+--------+                   |        
                        |                            |   +---------+
          +--+----------+--------------+--+          |   | Control |
          |          Underlay             |          |   |  Plane  |
          |       Infrastructure          |          |   +---------+
          +--+-------------+-----------+--+          |
             |                         |             |
    +--------+--------+       +--------+--------+    |
    | CATS-Forwarder 2|       | CATS-Forwarder 3|    |
    |--------+--------|       |--------+--------|    |
    |      C-SMA      |       |      C-SMA      |    |
    +--------+--------+       +--------+--------+    |
           |                           |             |
           |                           |             |
     +------+-----+               +----+------+      |
   +------------+ |             +------------+ |     |
   |  Service   | |             |  Service   | |     |
   |  Contact   | |             |  Contact   | |     |
   |  Instance  |-+             |  Instance  |-+     |
   +------------+               +------------+       |
   Service site 1               Service site 2
]]></artwork>
        </figure>

      <t>The service announcement process is established between the ingress
      forwarder, the egress forwarder, and the control plane. After a
      computing service is instantiated on a specific service site, the brief
      service information and the service deployment status need to be
      reported. The Service Contact Instance then updates it to the connected
      egress CATS-Forwarders ("CATS-Forwarder 2/3"). And the status is
      collected by C-SMAs and uploaded to the controllers. When receiving the
      information of a new type of computing service, the control plane is
      responsible for generating the CS-ID and sending it to the egress
      CATS-Forwarder, which subsequently disseminates it to other
      forwarders.</t>

      <t>In particular, for any computing service deployed in the CATS for the
      first time, the control plane could request the service instance to
      upload service demands and service attributes, which are associated with
      the CS-ID. The information may then be relayed to the C-PS in order to
      orchestrate the network and computing resources for computing service
      requests, thereby ensuring the quality of service.</t>

      <t>When querying the computing service, the clients do not need to
      memorize the specific CS-ID, but describe their intentions by the
      service attributes and map them to the CS-ID by the controllers (in
      centralized model) or themselves (in distributed model). A service
      request carrying CS-ID as the destination address is successively routed
      to the ingress CATS-Forwarder, and is forwarded to the egress
      CATS-Forwarder through the path computed by the C-PS component. At
      egress CATS-Forwarder, the requests are forwarded to the corresponding
      service contact instance which selects the instance that can provide the
      service.</t>
    </section>

    <section anchor="computing-service-attributes-classification">
      <name>Computing service Attributes Classification</name>

      <t>To enable the control plane to understand the characteristics of
      different computing services and schedule network and computing
      resources based on clients' demands, this document propose to classify
      the computing service attributes and upload to the control plane during
      the workflow of service announcement. Computing service attributes could
      be categorized into two types: Computing service Demand Attributes and
      Computing service Information Attributes. CSDA describes the computing
      resources and network resources requirements of the service, and CSIA
      details the nature of the computing service and the methods of its
      provision.</t>
    

    <section anchor="computing-service-demand-attributes">
      <name>Computing service Demand Attributes</name>

      <t>Computing service demand attributes can be categorized into computing
      resource demand and network resource demand.</t>
    

    <section anchor="computing-resource-demand">
      <name>Computing resource demand</name>

      <t>Computing resource demand includes but not limited to the following
      items.</t>

      <t>Computing capability type: describes the computation type required to
      run computing services, which could be categorized into logical
      computing capability, parallel computing capability, neural network
      computing capability and so on;</t>

      <t>Computing performance: specifies the required computational
      performance to ensure the quality of computing services, typically
      measured in operations per second, such as FLOPS;</t>

      <t>Memory capacity: describes the memory size required by computing
      services;</t>

      <t>Disk capacity: describes the required disk size to ensure the quality
      of computing service.</t>
    </section>

    <section anchor="network-resource-demand">
      <name>Network resource demand</name>

      <t>Network resource demands define the network performance metrics to
      guarantee the service experience, including latency, RTT, bandwidth,
      jitter, and packet loss rate.</t>
    </section>
    </section>

    <section anchor="computing-service-information-attributes">
      <name>Computing service Information Attributes</name>

      <t>Computing service information attributes include but not limited to
      service model, service type, service provider, service name, and service
      attribution domain.</t>

      <t>Service model: Differentiate the methods how service sites provide
      computing services, such as infrastructure services, platform services,
      and software services.</t>

      <t>Service type: Specify the types of computing services, such as video
      rendering, scientific computing, cloud AR/VR, etc.</t>

      <t>Service provider: Identify who provide the computing service.</t>

      <t>Service name: Specifies the name of the computing service.</t>

      <t>Service domain: Describe the area where the computing service is
      provided.</t>
    </section>

    </section>

    <section anchor="workflow-of-network-layer-service-announcement">
      <name>Workflow of Network-layer Service Announcement</name>

      <t>The service announcement processing and handling procedures could be
      divided into two parts: service registration and service update.</t>
    

    <section anchor="service-registration">
      <name>Service Registration</name>

      <t>For a new computing service that has not been registered in CATS
      domain, the service contact instance is first notified of the service
      information attributes after the computing service is instantiated at
      the service site. It looks up the cache that stores the service
      deployment information, and announce it to C-SMA through the network
      layer service registration message if this is a new computing service.
      </t>

      <t>Subsequently, if C-SMA also detects that the computing service has
      not been registered, the service information attributes would be sent to
      the control plane encapsulated in the registration packet. When the
      registration packet is received by the control plane, it generates a
      CS-ID for this new computing service and replies it to the C-SMA. At
      C-SMA, CS-ID is encapsulated in service registration response message
      and diffused to other CATS-Forwarders.</t>

      <t>Additionally, the controller plane could request computing service
      demand attributes from the service site that registered the new CS-ID.
      This request is forwarded from the control plane to the service site via
      the C-SMA. When the service site receives the request, it returns the
      requested computing service demand attributes to the control plane.</t>
    </section>

    <section anchor="service-update">
      <name>Service Update</name>

      <t>To ensure integrated management of computing services, the control
      plane needs to maintain a database of CS-IDs and related service
      attributes. The information database includes an expiration time for the
      mapping relationship, which encompasses the CS-ID and its bound CIS-ID,
      as well as the CS-ID and its computing service attributes. </t>

      <t>When the controller detects the expiration of the former mapping, it
      sends an update request message to the service contact instance and
      obtains the response information. If there is an update to the mapping
      relationship, the control plane sends an update message to the
      CATS-Forwarder, which then disseminates the update message; when a CS-ID
      is no longer bound to any CIS-ID, the latter mapping enters the
      expiration state and the control plane should decide whether to clear
      the binding relationship based on remain cache size.</t>

      <t>Additionally, when a service contact instance detects a change in the
      state of a service instance, such as the addition of a new instance of
      an available computing service or the removal of a service by the
      service site, it should send a service update message to the C-SMA. At
      C-SMA, two steps would be taken: 1. send a service update message to the
      control plane announcing the change in the mapping relationship between
      the CS-ID and the CIS-ID; 2. send a service update message to the other
      CATS-Forwarders to announce the service update.</t>
    </section>

    <section anchor="service-announcement-message">
      <name>Service Announcement Message</name>

      <t>TBD</t>
    </section>
    </section>

    <section anchor="service-querying-mechanism">
      <name>Service querying mechanism</name>
    

    <section anchor="centralized-model">
      <name>Centralized model</name>

      <t>The client does not need to memorize the CS-ID, but describe
      intentions by computing service information attributes. Before service
      request, a service querying packet carrying the clients' address and the
      computing service information attributes is constructed and sent to the
      control plane via CATS-Forwarder. When the controller receives the
      packet, it interprets and parses the computing service information
      attributes in the packet. The attributes are typically mapped to a CS-ID
      or a set of alternative CS-IDs, and the mapping result is subsequently
      returned to clients.</t>
    </section>

    <section anchor="distributed-model">
      <name>Distributed model</name>

      <t>In the distributed model, the CS-ID may contain semantics such as
      service type, service name and other service information attributes. The
      client could construct the CS-ID according to computing service intents
      and encapsulates it into the service request packet, which is then
      routed to the ingress CATS-Forwarder. At ingress CATS-Forwarder, The
      request is matched by the C-PS component to select the service instance
      as well as the network path that satisfy the computing service demand
      attributes.</t>
    </section>
    </section>

    <section anchor="announcement-security">
      <name>Security Considerations</name>

      <t>TBD</t>
    </section>

    <section anchor="announcement-iana">
      <name>IANA Considerations</name>

      <t>TBD</t>
    </section>
  </middle>

  <back>
    <references anchor="announcement-combined-references">
      <name>References</name>

      <references anchor="announcement-normative-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 anchor="announcement-informative-references">
        <name>Informative References</name>

        <reference anchor="I-D.ldbc-cats-framework"
                   target="https://datatracker.ietf.org/doc/html/draft-ldbc-cats-framework-06"
                   xml:base="https://bib.ietf.org/public/rfc/bibxml-ids/reference.I-D.ldbc-cats-framework.xml">
          <front>
            <title>A Framework for Computing-Aware Traffic Steering
            (CATS)</title>

            <author fullname="Cheng Li" initials="C." surname="Li">
              <organization>Huawei Technologies</organization>
            </author>

            <author fullname="Zongpeng Du" initials="Z." surname="Du">
              <organization>China Mobile</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="John Drake" initials="J." surname="Drake">
              <organization>Juniper Networks, Inc.</organization>
            </author>

            <date day="8" month="February" year="2024"/>

            <abstract>
              <t>This document describes a framework for Computing-Aware
              Traffic Steering (CATS). Particularly, the document identifies a
              set of CATS components, describes their interactions, and
              exemplifies the workflow of the control and data planes.</t>
            </abstract>
          </front>

          <seriesInfo name="Internet-Draft"
                      value="draft-ldbc-cats-framework-06"/>
        </reference>
      </references>
    </references>

    <?line 135?>

    <section anchor="acknowledgements" numbered="false">
      <name>Acknowledgements</name>

      <t>TBD</t>
    </section>
  </back>
</rfc>
