<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std"
     docName="draft-ietf-anima-network-service-auto-deployment-01"
     ipr="trust200902">
  <front>
    <title abbrev="">An Autonomic Mechanism for Resource-based Network
    Services Auto-deployment</title>

    <author fullname="Joanna Dang" initials="J." role="editor" surname="Dang">
      <organization>Huawei</organization>

      <address>
        <postal>
          <street>No.156 Beiqing Road</street>

          <city>Beijing</city>

          <code>100095</code>

          <country>China</country>

          <region>P.R. China</region>
        </postal>

        <phone/>

        <email>dangjuanna@huawei.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Sheng Jiang" initials="S." surname="Jiang">
      <organization>Huawei</organization>

      <address>
        <postal>
          <street>No.156 Beiqing Road</street>

          <city>Beijing</city>

          <code>100095</code>

          <country>China</country>

          <region>P.R. China</region>
        </postal>

        <phone/>

        <email>jiangsheng@huawei.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Zongpeng Du" initials="Z." surname="Du">
      <organization>China Mobile</organization>

      <address>
        <postal>
          <street>32 Xuanwumen West St</street>

          <city>Beijing</city>

          <code>100053</code>

          <country>China</country>

          <region>P.R. China</region>
        </postal>

        <phone/>

        <email>duzongpeng@chinamobile.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Yujing" initials="Z." role="editor" surname="Zhou">
      <organization>Huawei</organization>

      <address>
        <postal>
          <street>No.156 Beiqing Road</street>

          <city>Beijing</city>

          <code>100095</code>

          <country>China</country>

          <region>P.R. China</region>
        </postal>

        <phone/>

        <email>zhouyujing3@huawei.com</email>

        <uri/>
      </address>
    </author>

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

    <area>Operations and Management</area>

    <workgroup>ANIMA</workgroup>

    <keyword>self-deployment</keyword>

    <keyword>autonomic networking</keyword>

    <abstract>
      <t>This document specifies an autonomic mechanism for resource-based
      network services deployment through the Autonomic Control Plane (ACP) in
      a network. This mechanism uses the GeneRic Autonomic Signaling Protocol
      (GRASP) in <xref target="RFC8990"/> to exchange the information among
      the autonomic nodes so that the resource along the service path can be
      coordinated.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="I" title="Introduction">
      <t>With the network development, a class of services with resource
      requirements (such as bandwidth, queue, and priority) are already
      emerging, such as video, LR, VR, and so on. To ensure the normal
      operation of these services, the network needs to allocate sufficient
      resources for the services in advance. An autonomous network must have
      an appropriate mechanism to negotiate the network resource.</t>

      <t>From the network perspective, this kind of service has a source IP
      address and a destination IP address. Therefore, once the kind of
      service is delivered by a domain network, this service clearly has an
      access node and a departure node in the network. In an autonomic
      resources negotiation mechanism, the resources are being negotiated
      between the access node and departure node.</t>

      <t>The core goal of this paper is to establish a set of automatic
      negotiation mechanism to achieve the negotiation and distribution of
      network resources in the domain network between the service client and
      the network. That is, the server client negotiates with the network how
      many resources can be provided for specific services in the domain
      network to support the transmission of network services. The benefits of
      doing so mainly include the following aspects:</t>

      <t><list style="symbols">
          <t>The resource-based network services auto-deployment satisfys the
          QoS requirements of the service. If the service wants to ensure its
          own transmission quality, the most effective solution is to reserve
          enough transmission resources for the service before the service
          starts.</t>

          <t>The mechanism of supporting multiple rounds of negotiations
          enables the service client to change the resource requirements
          according to the state of the network. For example, when the network
          is congested, Video Conference services can reduce the quality of
          video to ensure the most basic connectivity.</t>

          <t>The mechanism can ensure that the resources in the network can be
          used more efficiently, provide different levels of network resources
          for different levels of services, and give priority to the network
          resource requirements of services of high importance.</t>
        </list>The resource information negotiated in this document is more
      extensive. Not only negotiation bandwidth resources but also includes
      and is not limited to queue, priority and other resources. On the one
      hand, in recent years, the requirements of services for the network have
      become more complex. Services usually require the network to ensure not
      only the deterministic bandwidth but also the deterministic end-to-end
      delay and jitter, so as to deliver the data message to the destination
      "in time" and "on time". For example, in the telemedicine scenario, in
      order to ensure that doctors do not feel obvious delay and jitter, it is
      required that the end-to-end delay should not exceed 20ms and the jitter
      should be less than 200 &#956;s. On the other hand, with the development
      of technology, the network has more refined the scheduling of
      transmission capacity, and also hopes to open its own capacity to the
      service clients. The negotiation resources established in this document
      should support not only to negotiate the existing supported resources
      but also to retain some scalability for the negotiation ability in the
      future.</t>

      <t>This document complete the resource-based self-adaptation among
      service and network nodes via GRASP. This document defines an autonomic
      technical objective for resource-based network services auto-deployment.
      It shows how the ANI can be applied to negotiate resource information
      for network service auto-deployment. This document reduces the
      difficulty of manual operation, avoids the problems of specification
      limitation and slow response speed in the centralized system, improves
      the efficiency of service deployment and makes more rational use of
      network resources. The GeneRic Autonomic Signaling Protocol (GRASP) is
      specified by [RFC8990] and can make use of the technical objective to
      provide a solution for resource-based network services
      auto-deployment.</t>
    </section>

    <section anchor="RL" title="Requirements Language">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
      "OPTIONAL" in this document are to be interpreted as described in BCP 14
      [RFC2119][RFC8174] .</t>
    </section>

    <section anchor="TA" title="Terminology &amp; Abbreviations">
      <t>This document uses terminology defined in [RFC7575].</t>

      <t>RRM ASA: Requester ResourceManager ASA. A kind of ResourceManager ASA
      which start to request resource in the network.</t>

      <t>PRM ASA: Provider ResourceManager ASA. A kind of ResourceManager ASA
      which provid resource in the network.</t>

      <t>APE: Access Provider Edge is the first access provider edge where the
      service initiator connects to the network or where the path-dependent
      and resource-based network service starts.</t>

      <t>DPE: Departure PE is the last provider edge where the path-dependent
      and resource-based network service ends.</t>

      <t>Transmit node: A transmit node in the domain network.</t>

      <t>ASBR: AS Border Router is an edge node of the domain in the
      cross-domain scenario. It may also be a PE node.</t>
    </section>

    <section title="Resource-based Network Services Auto-deployment Solution">
      <t>This section describes the internal architecture of resource-based
      network services auto-deployment. As noted in Section 1, this is not a
      complete description of a solution, which will depend on the detailed
      design of the relevant Autonomic Service Agents (ASAs). It uses the
      generic discovery and negotiation protocol defined by [RFC8990] and the
      relevant GRASP objectives are defined in Section 5.</t>

      <t>The procedures described below are carried out by an ASA in each
      device that participates in the solution. We will refer to this as the
      ResourceManager ASA. If a device containing a ResourceManager ASA is
      used up its resource, it can request more resources according to its
      requirements. It should decide the type and value of the requested
      resource and request it via the mechanism described in Section 6.</t>

      <section title="ResourceManager ASA Discovery">
        <t>A ResourceManager ASA that needs additional resources should
        firstly discover peers that may be able to provide extra resources.
        The ASA should send out a GRASP Discovery message that contains a
        ResourceManager Objective option to discover peers also supporting
        that option.</t>

        <t>A GRASP device that receives a Discovery message with a
        ResourceManager Objective option should respond with a GRASP Response
        message if it contains a ResourceManager ASA. If it does not contain
        ResourceManager ASA, the device ignores this message. Further details
        of the discovery process are described in Section 2.5.4 of
        [RFC8990].</t>
      </section>

      <section title="Resource Negotiation">
        <t>After the discovery step, the RRM ASA (Requesting ResourceManager
        ASA) will act as a GRASP negotiation initiator by sending a GRASP
        Request message with a ResourceManager Objective option. The RRM ASA
        indicates in this option the value of the requested resource. And
        ResourceManager GRASP Objective allows multiple types of resources to
        be requested simultaneously.</t>

        <t>When the PRM ASA (Provider ResourceManager ASA) receives a
        subsequent Request message, it should conduct a GRASP negotiation
        sequence, using Negotiate, Confirm Waiting, and Negotiation End
        messages as appropriate. The Negotiate messages carry a
        ResourceManager Objective option, which will indicate the resource
        type and value offered to the requesting ASA.</t>

        <t>During the negotiation, the RRM ASA will decide at each step how
        large a resource needs to offer. That decision, and the decision to
        end the negotiation, are implementation choices. As to the PRM ASA
        responses how large resources they can offer and reserve enough
        resources during this negotiation step. A resource shortage may cause
        a device to indicate the existing available value within a
        ResourceManager Objective option to the RRM ASA. The RRM ASA compares
        whether the resource data received is the same locally. If they are
        not the same, the RRM ASA might decide whether to accept the request
        of the resource. If not, the RRM ASA might terminate the negotiation
        via Negotiation End messages with an error code string.</t>

        <t>As described in Section 2.8.8 of [RFC8990], negotiation will
        continue until either end stops it with a Negotiation End message. If
        the negotiation succeeds, the ASA that provides the resource will
        remove the negotiated resource from its pool, and the requesting ASA
        will add it. If the negotiation fails, the party sending the
        Negotiation End message may include an error code string.</t>
      </section>

      <section title="Behavior after Negotiation">
        <t>Upon receiving a GRASP Negotiation End message that indicates that
        the acceptable resource is available. The resource-providing device
        removes the acceptable resource from its resource pool and the
        requesting device may use the negotiated resource without further
        messages.</t>
      </section>
    </section>

    <section anchor="go" title="Autonomic Resource Management Objectives">
      <t>This section defines the GRASP technical objective options that are
      used to support autonomic resource management.</t>

      <section title="ResourceManager Objective option">
        <t>The ResourceManager Objective option is a GRASP Objective option
        conforming to the GRASP specification [RFC8990]. Its name is
        "ResourceManager", and it carries the following data items as its
        value: the resource value. Since GRASP is based on CBOR (Concise
        Binary Object Representation) [RFC8949], the format of the
        ResourceManager Objective option is described in the Concise Data
        Definition Language (CDDL) [RFC8610] as follows:</t>

        <t>objective = ["ResourceManager", objective-flags, loop-count,
        ?objective-value]</t>

        <t>objective-name = "ResourceManager"</t>

        <t>objective-flags = uint .bits objective-flag ; as in the GRASP
        specification</t>

        <t>loop-count = 0..255 ; as in the GRASP specification</t>

        <t>The 'objective-value' field expresses the actual value of a
        negotiation or synchronization objective. So a new objective-value
        named n-s-deployment-value is defined for Network Service
        Auto-deployment as follows. The autonomic node can know that it is
        serving Network Service Auto-deployment according to the
        objective-value after receiving the GRASP message. The 'objective
        value' contains two parts, one represents the information of the
        service itself, and the other represents the requirements of
        resources.</t>

        <t>objective-value = n-s-deployment-value ; An n-s-deployment-value is
        defined as Figure-1.</t>

        <t><figure>
            <artwork align="left"><![CDATA[ n-s-deployment-value
     + service-information
         + source-ip-address
         + destination-ip-address
         + service-tag
     + resource-information
         + resource-requirement-pair
             + resource-type
             + resource-value
]]></artwork>

            <postamble>Figure-1: Format of n-s-deployment-value</postamble>
          </figure></t>

        <t>service-information = [ source-ip-address, destination-ip-address,
        service-tag ]</t>

        <t>The source-ip-address and the destination-ip-address represent the
        source address and destination address. IPv4 and IPv6 addresses are
        allowed.</t>

        <t>resource-information = [ resource-requirement-pair 1,
        resource-requirement-pair 2, ... , resource-requirement-pair n ]</t>

        <t>Resource requirements of different types can be described in an
        objective option. The ResourceManager objective option supports
        multi-faceted resource requirements and negotiation.</t>

        <t>resource-requirement-pair = [ resourcetype, resval ]</t>

        <t>resourcetype /= 0&hellip;4; requested or offered resource type,
        such as bandwidth, queue, and priority.</t>

        <t>resval /= 1&hellip;1000000; If the restype is bandwidth, the value
        ranges in Mbit/s; If the restype is latency, the value ranges in
        microsecond; If the restype is jitter, the value ranges in
        microsecond.</t>
      </section>
    </section>

    <section anchor="ponsa" title="Process of Network Service Auto-deployment">
      <t>The network service auto-deployment system includes Service
      Initiator(SI), Service Terminator(ST), RRM ASA, PRM ASA and even
      ASBR.</t>

      <t>The service initiator is the resource demander, which ensures the
      connection of services through negotiation resources with
      ResourceManager ASA in the domain network. Service Terminator is the end
      of service. APE represents the first access provider edge where the
      service initiator connects to the network or where the path-dependent
      and resource-based network service starts. There may be multiple
      Transmit nodes between APE and Service Terminator in the network or even
      cross multiple network domains through ASBRs. RRM ASA starts a
      negotiation process to get enough resources in the network. After RRM
      ASA gets the result about the resource, it sends a response message to
      Service Initiator. And PRM ASA manages resources from APE to ST
      hop-by-hop.</t>

      <section anchor="e2e" title="An example of End-to-End Service">
        <t>In an End-to-End service, Service Initiator is a kind of access
        terminal of the network. And the End-to-End service initiator uses
        ResourceManager ASA to negotiate resources with the ResourceManager
        ASA in the APE. Figure 2 shows the architecture of the End-to-End
        service. In the figure, the RRM ASA in SI will act as a GRASP
        negotiation initiator by sending a GRASP Request message with a
        ResourceManager Objective option. The RRM ASA indicates in this option
        the value of the requested resource. When this RRM ASA receives a
        subsequent Request message, it should conduct a GRASP negotiation
        sequence, using Negotiate, Confirm Waiting, and Negotiation End
        messages as appropriate. The Negotiate messages carry a
        ResourceManager Objective option with the resource value offered to
        the PRM ASA.</t>

        <t><figure>
            <artwork align="center"><![CDATA[ +---------+ Negotiation Resource  +---------+    
 | RRM ASA |<--------------------->| PRM ASA |      
 +---------+                       +---------+    +------+    +------+
 |   SI    | --------------------->|   APE   |--->| Node |--->|  ST  |
 +---------+   Transmit data       +---------+    +------+    +------+
]]></artwork>

            <postamble>Figure-2: An example of End-to-End Service</postamble>
          </figure></t>

        <t>PRM ASA processes receive resource requests and ensure the nodes
        resource it can manage. If PRM ASA can't manage all nodes in the data
        transport root or can't have enough resources, PRM ASA should act as a
        GRASP negotiation initiator to negotiate resources with other ASA in
        the network.</t>

        <t>When the RRM ASA receives a Negotiation response message, it should
        check whether the resource value within the Negotiate message is the
        same as the resource value requested. If it is the same, the RRM ASA
        should send GRASP Negotiation End messages indicating that the
        negotiation was successful. If it is not the same, the RRM ASA should
        communicate with Service Initiator about the result and decide whether
        to accept this negotiation. If accepting this negotiation, RRM ASA
        should send GRASP Negotiation End messages indicating that the
        negotiation was successful. If not accepting this negotiation, it
        should send GRASP Negotiation End messages indicating that the
        negotiation fails.</t>
      </section>

      <section anchor="multiplerounds" title="An example of multiple rounds">
        <t>In the process of automatic resource management mechanism, RRM ASA
        and PRM ASA are allowed to negotiate resources for multiple rounds. A
        very common situation is that the network resources can not meet the
        resources required by the service, but the service is willing to
        reduce its resource requirements to ensure the successful deployment
        of the service. The PRM ASA using Resource Management Objectives
        contains the resources that the network can provide to the service at
        present in the response message. The RRM ASA changes the resource
        requirements according to the specific requirements of the received
        resources and services, to carry out the next round of service
        negotiation.</t>
      </section>

      <section anchor="asbr" title="An example of multiple domain network">
        <t>In a multiple network, PRM ASA doesn't have the resource status of
        other domains. So PRM ASA should negotiate with ASBR PRM ASA before
        response RRM ASA. The PRM ASA should send a Confirm Waiting message to
        the RRM ASA, to extend its timeout. When the new resource becomes
        available confirmed by ASBR, the PRM ASA responds with a GRASP
        Negotiate message with a resource value offered. The process as Figure
        3 shows. The Confirm Waiting message is described in Section 2.8.9 of
        [RFC8990].</t>

        <t><figure>
            <artwork align="center"><![CDATA[ +----------+      +---------+  
 | RRM ASA  |<---->| PRM ASA |
 +----------+      +---------+        +--------------+
                   | RRM ASA |<------>| ASBR PRM ASA |
                   +---------+        +--------------+
  Request Negotiation Message
  ---------------------->                 
  Waiting message
  <----------------------
                          Request Negotiation Message
                         ------------------->
                          Negotiation message
                         <------------------
  Negotiation message
  <----------------------]]></artwork>

            <postamble>Figure-3: An example of a path-based resource
            negotiation</postamble>
          </figure>Other processes between APE and ASBR are the same as
        between Service Initiator and APE.</t>
      </section>

      <section anchor="changere"
               title="An example of changing resource requirements">
        <t>r the process of automatic resource management mechanism, RRM ASA
        and PRM ASA are allowed to change and negotiate the resource
        requirements. In the course of using network services, there will be
        service requirement change which will lead to the problem of network
        resource requirement change. ResourceManager ASA needs to be able to
        handle resource changes in a timely manner to meet service
        requirements.</t>

        <t>During the renegotiation process, RRM ASA resent the service's
        resource requirements by using ResourceManager GRASP Objective. And
        the resource renegotiation process does not require the use of the
        same PRM ASA as at the last negotiation on the mission. PRM ASA
        received the resource negotiation message and made the determination.
        If the resource requirements are lower than those allocated, the
        response confirms the information and releases the excess resources.
        If more resources are required than have been allocated, the resource
        negotiation process follows Section 6.1.</t>

        <t>PRM ASA does not change existing resource allocation until
        negotiation on resource changes is complete. After negotiation, PRM
        ASA makes changes to the resource pool by using response to the
        negotiated resource requirements and synchronizes them with other ASA
        nodes.</t>
      </section>

      <section anchor="stop"
               title="An example of releasing resource requirements">
        <t>After the service is completed, a mechanism is needed to release
        network resources so that network resources can be used more
        efficiently. This process can be seen as a change in resource
        requirements negotiation, where the resource requirements of the
        service to the network become zero. A negotiation with PRM ASA was
        initiated by RRM ASA in SI to reduce the resource footprint of the
        service. Upon completion of the negotiation, PRM ASA released the
        resources occupied by the service.</t>
      </section>
    </section>

    <section anchor="cwot" title="Compatibility with Other Technologies">
      <t>A gateway device is used between the GRASP network and the MPLS
      network. As is known, the RSVP belongs to the distribution mechanism for
      resource reservation, but it is only coupled with MPLS. Then this device
      uses the GRASP protocol in the GRASP network, and the MPLS protocol in
      the MPLS network, so that resource information can be shared.</t>
    </section>

    <section anchor="security-considerations" title="Security Considerations ">
      <t>It complies with GRASP security considerations. Relevant security
      issues are discussed in [RFC8990]. The preferred security model is that
      devices are trusted following the secure bootstrap procedure [RFC8995]
      and that a secure Autonomic Control Plane (ACP) [RFC8994] is in
      place.</t>
    </section>

    <section anchor="IANA-Considerations" title="IANA Considerations">
      <t>This document defines a new GRASP Objective option names:
      "ResourceManager" which is need to be added to the "GRASP Objective
      Names" registry.</t>
    </section>

    <section anchor="acknowledgements" title="Acknowledgements">
      <t>Valuable comments were received from Michael Richardson and Brian
      Carpenter.</t>
    </section>
  </middle>

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

      <reference anchor="RFC8993"
                 target="https://www.rfc-editor.org/info/rfc8993">
        <front>
          <title>A Reference Model for Autonomic Networking</title>

          <author>
            <organization/>
          </author>

          <date/>
        </front>
      </reference>

      <reference anchor="RFC8994"
                 target="https://www.rfc-editor.org/info/rfc8994">
        <front>
          <title>GeneRic Autonomic Signaling Protocol (GRASP)</title>

          <author>
            <organization/>
          </author>

          <date/>
        </front>
      </reference>

      <reference anchor="RFC8990"
                 target="https://www.rfc-editor.org/info/rfc8990">
        <front>
          <title>GeneRic Autonomic Signaling Protocol (GRASP)</title>

          <author>
            <organization/>
          </author>

          <date/>
        </front>
      </reference>

      <reference anchor="I-D.ietf-mpls"
                 target="https://www.rfc-editor.org/info/rfc3031">
        <front>
          <title>Multiprotocol Label Switching Architecture</title>

          <author>
            <organization/>
          </author>

          <date/>
        </front>
      </reference>

      <reference anchor="I-D.ietf-spring-segment-routing"
                 target="https://www.rfc-editor.org/info/rfc8402">
        <front>
          <title>Segment Routing Architecture</title>

          <author>
            <organization/>
          </author>

          <date/>
        </front>
      </reference>
    </references>
  </back>
</rfc>
