<?xml version="1.0" encoding="utf-8"?>
<!-- 
     draft-rfcxml-general-template-standard-00
  
     This template includes examples of the most commonly used features of RFCXML with comments 
     explaining how to customise them. This template can be quickly turned into an I-D by editing 
     the examples provided. Look for [REPLACE], [REPLACE/DELETE], [CHECK] and edit accordingly.
     Note - 'DELETE' means delete the element or attribute, not just the contents.
     
     Documentation is at https://authors.ietf.org/en/templates-and-schemas
-->
<?xml-model href="rfc7991bis.rnc"?>  <!-- Required for schema validation and schema-aware editing -->
<!-- <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> -->
<!-- This third-party XSLT can be enabled for direct transformations in XML processors, including most browsers -->


<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<!-- If further character entities are required then they should be added to the DOCTYPE above.
     Use of an external entity file is not recommended. -->

<rfc
  xmlns:xi="http://www.w3.org/2001/XInclude"
  category="info"
  docName="draft-du-anima-service-intent-auto-deployment-00"
  ipr="trust200902"
  obsoletes=""
  updates=""
  submissionType="IETF"
  xml:lang="en"
  version="3">
<!-- [REPLACE] 
       * docName with name of your draft
     [CHECK] 
       * category should be one of std, bcp, info, exp, historic
       * ipr should be one of trust200902, noModificationTrust200902, noDerivativesTrust200902, pre5378Trust200902
       * updates can be an RFC number as NNNN
       * obsoletes can be an RFC number as NNNN 
-->

  <front>
    <title abbrev="Service Intent Auto Deployment">The Autonomic Deployment Mechanism of Service Intent in Autonomic Networks</title>
    <!--  [REPLACE/DELETE] abbrev. The abbreviated title is required if the full title is longer than 39 characters -->

    <seriesInfo name="Internet-Draft" value="draft-du-anima-service-intent-auto-deployment-00"/>
   
    <author fullname="Jialu Du" initials="J." surname="Du">

    <!-- [CHECK]
             * initials should not include an initial for the surname
             * role="editor" is optional -->
    <!-- Can have more than one author -->
      
    <!-- all of the following elements are optional -->
      <organization abbrev="BUPT">Beijing University of Posts and Telecommunications</organization>
      <address>
        <postal>
          <!-- Reorder these if your country does things differently -->
          <street> No. 10 Xitucheng Road</street>
          <city>Beijing</city>
          <region>Haidian District</region>
          <code>100083</code>
          <country>China</country>
          <!-- Uses two letter country code -->
        </postal>        
        <!--<phone>Phone [REPLACE/DELETE]</phone>-->
        <email>dujialu2024@bupt.edu.cn</email>  
        <!-- Can have more than one <email> element -->
        <!--<uri>URI [REPLACE/DELETE]</uri>-->
      </address>
    </author>

    <author fullname="Ye Tian" initials="Y." surname="Tian">

    <!-- [CHECK]
             * initials should not include an initial for the surname
             * role="editor" is optional -->
    <!-- Can have more than one author -->
      
    <!-- all of the following elements are optional -->
      <organization abbrev="BUPT">Beijing University of Posts and Telecommunications</organization>
      <address>
        <postal>
          <!-- Reorder these if your country does things differently -->
          <street> No. 10 Xitucheng Road</street>
          <city>Beijing</city>
          <region>Haidian District</region>
          <code>100083</code>
          <country>China</country>
          <!-- Uses two letter country code -->
        </postal>        
        <!--<phone>Phone [REPLACE/DELETE]</phone>-->
        <email>yetian@bupt.edu.cn</email>  
        <!-- Can have more than one <email> element -->
        <!--<uri>URI [REPLACE/DELETE]</uri>-->
      </address>
    </author>

    <author fullname="Xiangyang Gong" initials="X." surname="Gong">

    <!-- [CHECK]
             * initials should not include an initial for the surname
             * role="editor" is optional -->
    <!-- Can have more than one author -->
      
    <!-- all of the following elements are optional -->
      <organization abbrev="BUPT">Beijing University of Posts and Telecommunications</organization>
      <address>
        <postal>
          <!-- Reorder these if your country does things differently -->
          <street> No. 10 Xitucheng Road</street>
          <city>Beijing</city>
          <region>Haidian District</region>
          <code>100083</code>
          <country>China</country>
          <!-- Uses two letter country code -->
        </postal>        
        <!--<phone>Phone [REPLACE/DELETE]</phone>-->
        <email>xygong@bupt.edu.cn</email>  
        <!-- Can have more than one <email> element -->
        <!--<uri>URI [REPLACE/DELETE]</uri>-->
      </address>
    </author>
	
	
	<author fullname="Sheng Jiang" initials="S." surname="Jiang">

    <!-- [CHECK]
             * initials should not include an initial for the surname
             * role="editor" is optional -->
    <!-- Can have more than one author -->
      
    <!-- all of the following elements are optional -->
      <organization abbrev="BUPT">Beijing University of Posts and Telecommunications</organization>
      <address>
        <postal>
          <!-- Reorder these if your country does things differently -->
          <street> No. 10 Xitucheng Road</street>
          <city>Beijing</city>
          <region>Haidian District</region>
          <code>100083</code>
          <country>China</country>
          <!-- Uses two letter country code -->
        </postal>        
        <!--<phone>Phone [REPLACE/DELETE]</phone>-->
        <email>shengjiang@bupt.edu.cn</email>  
        <!-- Can have more than one <email> element -->
        <!--<uri>URI [REPLACE/DELETE]</uri>-->
      </address>
    </author>
	

   
    <date day="" month="" year="2026"/>
    <!-- On draft submission:
         * If only the current year is specified, the current day and month will be used.
         * If the month and year are both specified and are the current ones, the current day will
           be used
         * If the year is not the current one, it is necessary to specify at least a month and day="1" will be used.
    -->

    <area>Operations and Management</area>
    <workgroup>ANIMA</workgroup>
    <!-- "Internet Engineering Task Force" is fine for individual submissions.  If this element is 
          not present, the default is "Network Working Group", which is used by the RFC Editor as 
          a nod to the history of the RFC Series. -->

    <keyword>Intent-Driven Networking,Autonomic Networking,Self-deployment,Resource Management</keyword>
    <!-- [REPLACE/DELETE]. Multiple allowed.  Keywords are incorporated into HTML output files for 
         use by search engines. -->

    <abstract>
      <t>This document defines a generic service intent deployment mechanism. It enables automated negotiation and coordination of heterogeneous resources. The mechanism uses RM ASAs and the Generic Autonomic Signaling Protocol (GRASP) for dynamic interactions and resource exchanges. It specifies a complete workflow covering intent reception, parsing, responder selection, negotiation, solution integration, resource confirmation, and dynamic adjustment. It employs standardized message formats, a negotiation state machine, and convergence logic to jointly optimize multiple resources and ensure end-to-end service level objectives. Its design features good scalability and fault tolerance, making it suitable for automated orchestration and lifecycle management in intent-driven networks.</t>
    </abstract>
 
  </front>

  <middle>
    <section>
      <name>Introduction</name>
      <t>Traditional network operation and maintenance rely on administrators manually translating business requirements into device configurations. This approach is not only inefficient but also challenging to adapt to dynamically changing network environments. As network scales expand and service types become more diverse, network administrators increasingly prefer to specify "what to achieve" rather than "how to configure devices focus from implementation details to business intent. This high-level policy expression is known as Intent, which enables the network to make autonomous decisions and dynamically adjust resources to meet business objectives.</t>
      <t>A key challenge in intent-driven networking is translating high-level intents into concrete resource allocation actions while continuously ensuring intent satisfaction as network conditions evolve. The draft <xref target="Network-Service-Auto-Deployment"/> proposes a distributed resource negotiation mechanism based on Resource Manager Autonomous Agents (RM ASAs), enabling nodes to dynamically negotiate resources such as bandwidth and queues using the GRASP protocol.This approach provides a foundation for intent-driven networking. However, the mechanism supports only value-based resource negotiation and lacks the ability to understand intent semantics. Its negotiation process focuses solely on matching resource quantities, without considering the business objectives served by the resource allocation, which hinders adaptive adjustment to changing business requirements.</t>
      <t>This limitation is particularly evident in emerging network services that integrate transmission with computing. For example, in intelligent video compression, the network must not only reserve bandwidth resources along the forwarding path but also require specific nodes to invoke AI inference models for image compression tasks, all while ensuring end-to-end latency and image quality. Such services involve the joint optimization of network and computing resources, which are interdependent, making simple value-based resource negotiation insufficient to meet their requirements. What administrators truly need to specify are service-level objectives, such as "perform intelligent compression on video stream X while ensuring latency and image quality," rather than concrete resource allocations like "reserve 10 Mbps bandwidth on node A and 2GB memory on node B."</t>
      <t>This document builds upon <xref target="Network-Service-Auto-Deployment"/> to propose a generic intent deployment mechanism based on distributed RM ASA negotiation. In this mechanism, the Service Initiator first creates a Service Intent instance as defined in draft <xref target="Service-Intent"/>. This instance uses a structured semantic model to specify expected network, computing, and storage resources. It may include network requirements like bandwidth, latency, jitter, endpoints, and multi-path permission; computing needs such as capacity, request latency, and coordination flags; and storage demands including capacity and throughput. The Service Initiator then uses GRASP to flood the Service Intent Objective across the autonomous domain. Upon receiving it, each Service Responder's RM ASA starts distributed negotiations based on the intent's semantic constraints and local real-time resource states, such as available bandwidth, GPU load, and storage I/O. Through hop-by-hop negotiation and feedback, RM ASAs collaborate to find a feasible resource allocation that meets the intent's goals, such as end-to-end latency and image quality, ultimately enabling joint optimization of network, computing, and storage resources. This mechanism features the following characteristics:</t>
      <ul>
          <li>High-Level Abstraction: Administrators only need to express business objectives without concerning themselves with specific resource values or device configurations.</li>
          <li>Support for Compute-While-Transmitting: A unified framework expressing both network and computing resource requirements, enabling the dynamic deployment of computational tasks along the forwarding path.</li>
          <li>Distributed Autonomy: The negotiation process relies on GRASP interactions between nodes without a centralized controller, aligning with the design principles of autonomic networking.</li>
          <li>Intent Awareness: RM ASAs make local decisions during negotiation based on the intent, rather than relying solely on simple value matching.</li>
          <li>Dynamic Adaptability: When network or computing resource states change, renegotiation can be initiated to continuously ensure the satisfaction of intent.</li>
      </ul>
      <t>This document defines the generic intent deployment process in Section 4. The security mechanism is based on the Autonomic Control Plane (ACP) <xref target="RFC8994"/> and the Bootstrapping Remote Secure Key Infrastructure (BRSKI) <xref target="RFC8995"/>, with relevant discussions provided in Section 6.</t>
    </section>
    <section>
        <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>
      <name>Terminology &amp; Abbreviations</name>
      <t>This document uses terminology defined in <xref target="RFC7575"/> and <xref target="Network-Service-Auto-Deployment"/>.</t>
      <ul>
        <li>RM ASA: A Resource Manager Autonomous Agent operating on an autonomous node. It is responsible for managing local resources on the node, including bandwidth, queues, memory, priorities, and computing resources. The RM ASA communicates with its counterparts on other nodes to enable dynamic scheduling of network resources within an autonomous network domain. This document assumes that all autonomous nodes are equipped with an RM ASA.</li>
        <li>Service Initiator: An autonomous node responsible for receiving external intents and coordinating their deployment within an autonomous network. As the initiating entity of an intent, this node communicates with the RM ASAs of relevant nodes through GRASP negotiation to facilitate intent deployment and management.</li>
        <li>Service Responder: An autonomous node that responds to negotiation requests from the Service Initiator. It participates in the negotiation process through its RM ASA and proposes feasible resource allocation solutions based on local resource status and intent semantics.</li>
      </ul>
    </section>
    <section>
      <name>General Deployment Mechanism Based on RM ASA Negotiation</name>
      <t>This section describes the general process for automated deployment and negotiation of service intent based on RM ASA. This mechanism assumes that the service intent has been input by the user through an external system and converted into a standardized service intent object by a parsing module. This section defines a general negotiation framework for intent deployment and specifically specifies the message format, processing logic, and convergence mechanism for interactions between the Intent Initiator ASA and the RM ASA using the GRASP protocol. This framework is independent of specific resource types and does not presuppose the implementation method of the internal agent of the RM ASA.</t>
      <section>
        <name>Intent Parsing</name>
        <t>The Service Initiator ASA receives the service intent from an external interface. The intent can be expressed in natural language or structured text, for example, "guarantee bandwidth for video conferencing between headquarters and branches and allow the use of multiple paths". The parsing module inside the Service Initiator RM ASA converts this intent into a standardized service intent object, which serves as a unified data carrier for all subsequent negotiation processes. The definition, data structure, value ranges, and extension rules of this object are detailed in <xref target="Service-Intent"/>; this document only references its format.</t>
        <t>The intent object MAY contain several flags to indicate specific deployment requirements. For example, the multipath flag `multipath-permission` indicates whether multiple parallel paths are allowed; the transport-coordination flag "transport-coordination" indicates whether computing resources need to be invoked along the transmission path. During the parsing process, the Service Initiator ASA MUST perform compliance verification on the generated intent object to ensure it conforms to the draft specification and make a legality judgment based on local network policies.</t>
	  </section>
      <section>
        <name>Determination of Service Responders</name>
		<t>To narrow the scope of subsequent negotiation, the Service Initiator RM ASA MUST determine the set of RM ASA nodes that will participate in service deployment, i.e., the Service Responder. This determination process is based on the topology information and resource overview maintained locally by the Service Initiator RM ASA. Based on the service type flag carried in the intent object, it filters forwarding nodes, computing nodes, and storage nodes in stages.</t>
        <t>The Service Initiator RM ASA, as a node within the autonomous domain, participates in the intra-domain routing protocol to obtain and continuously maintain the network-wide topology information, thereby constructing a link state database. Simultaneously, the Service Initiator RM ASA maintains a lightweight resource status overview of each node locally, including available bandwidth, computing load, and available storage space, through the GRASP synchronization mechanism or historical data statistics. This information is stored locally on the Service Initiator RM ASA and does not rely on a centralized component.</t>
		<t>When determining the Service Responder, the Service Initiator RM ASA first dynamically discovers potential responding nodes through the GRASP Discovery mechanism: it sends a Discovery message carrying the Resource Manager Objective, where the objective-value describes the summary requirements of the service intent (e.g., service type, required resource category). An RM ASA that receives this message and whose own capabilities meet the summary requirements MUST reply with a Response message, thus forming a preliminary candidate node set. Subsequently, the Service Initiator RM ASA parses the intent object to identify the service scenario and resource requirements. Then, combined with the locally maintained topology information and resource overview, it performs fine-grained screening of the nodes in the preliminary set to determine the final three types of Service Responders: forwarding, computing, and storage. The specific decision mechanism is as follows:</t>
		<ul>
		  <li>When the `compute-intent` contains the `transport-coordination` field and its value is `TRUE`, it indicates that the computing tasks in the network service need to be completed on the forwarding path. The Service Initiator ASA SHOULD consider deploying the computing tasks on nodes along the forwarding path. Specifically, the Service Initiator ASA first calculates candidate forwarding paths based on transmission constraints such as `destinations`, `Bandwidth-Requirement`, `latency-bound`, and `jitter-bound` carried in the `network-intent` and determines the set of forwarding Service Responders that may participate on those paths. Subsequently, the Service Initiator ASA SHOULD select, from this set, nodes that simultaneously meet the computing requirements defined in the `compute-intent` (e.g., `compute-capacity`) and the storage requirements defined in the `storage-intent` (e.g., `storage-capacity`, `storage-throughput`), as the computing Service Responder and storage Service Responder, respectively. If no node meeting all requirements can be found, the Service Initiator MAY adjust the path selection or relax some constraints according to local policies.</li>
		  <li>When the value of the `transport-coordination` field in the `compute-intent` is `FALSE`, it indicates that the computing resources MAY exist independently of the forwarding path. In this case, the Service Initiator ASA SHOULD first select computing nodes as the computing Service Responder based on the computing requirements defined in the `compute-intent` (e.g., `compute-capacity`) and possible location constraints; simultaneously, it selects storage nodes as the storage Service Responder based on the storage requirements defined in the `storage-intent` (e.g., `storage-capacity` and `storage-throughput`). Subsequently, based on the locations of the selected computing and storage nodes, the Service Initiator ASA calculates the optimal forwarding paths connecting these nodes, taking into account the source and destination addresses `destinations` and transmission constraints `Bandwidth-Requirement`, `latency-bound`, and `jitter-bound` defined in the `network-intent`. If no combination of nodes meeting all requirements can be found, the Service Initiator MAY adjust the node selection or relax some constraints according to local policies.</li>
		  <li>If the multipath flag `multipath-permission` in the intent object is TRUE, the Service Initiator ASA SHOULD generate multiple paths that satisfy the transmission constraints and sort them by priority to support subsequent multipath negotiation; if the multipath flag is FALSE, it SHOULD select only one optimal path.</li>
		</ul>
		<t>The determined results of the Service Responder are output as a candidate forwarding node list, a candidate computing node list, and a candidate storage node list for use in the step-by-step negotiation in Section 4.3. This round of process only performs preliminary screening based on resource overview, aiming to determine the scope of nodes that need to participate in the negotiation. The actual resource availability MUST be dynamically confirmed through subsequent direct negotiation with each node's RM ASA.</t>
		<t>If the Service Initiator ASA cannot find any Service Responder that satisfies the transmission constraints and resource requirements in the intent object, it MUST execute a fallback mechanism:</t>
		<ul>
		  <li>The initiator MAY, within the scope permitted by local policy, gradually relax the value requirements for relevant fields in the `network-intent`, `compute-intent`, and `storage-intent` (e.g., accepting higher `latency-bound` or `jitter-bound`, lower `Bandwidth-Requirement`, `compute-capacity`, or `storage-capacity`/`storage-throughput`), and re-execute the screening process under the relaxed constraints. The step size, order, and termination conditions for relaxation are determined by local policy.</li>
		  <li>If no candidate node that fully satisfies the original requirements can be generated after relaxing the constraints, the Service Initiator ASA SHOULD select the optimal approximate solution under the current resource overview according to local policies (e.g., selecting the path with bandwidth closest to `Bandwidth-Requirement` or the node with computing power closest to `compute-capacity`). It SHOULD then provide feedback to the intent initiator via an out-of-band mechanism regarding the deviation between the selected solution and the original intent requirements. This feedback mechanism is outside the scope of this specification and is determined by the specific implementation.</li>
		  <li>If none of the above mechanisms can generate any candidate nodes, the Service Initiator ASA MUST record the reason for the failure (e.g., "no available forwarding path" or "no available computing node") and be prepared to report it to the upper layer when subsequent negotiation fails.</li>
		</ul>
		<t>Regardless of the fallback mechanism used, the Service Initiator ASA MUST clearly indicate in the final feedback the difference between the actual screening result and the original intent requirements, for the decision-making of the upper-layer system or administrator.</t>
	  </section>
      <section>
        <name>Negotiation with RM ASA</name>
        <t>According to <xref target="RFC8994"/> and <xref target="RFC8995"/>, all nodes in the autonomous domain have completed secure bootstrap via BRSKI and operate over the encrypted channel provided by ACP; therefore, the node identities are trusted and the communication content is secure. On this basis, any operation on resources MUST be authorized. When an RM ASA receives a negotiation request, it MUST verify the identity of the initiator and the authorization information for the requested operation based on the security context provided by ACP (e.g., checking whether the initiator is permitted to apply for a specific type of resource). If authorization verification fails, the RM ASA MUST reject the request directly and MAY carry O_DECLINE with a reason description in the M_END message. The subsequent negotiation processes in this document all assume that the nodes have been authenticated and the operations have been authorized.</t>
        <t>The Service Initiator ASA, as the negotiation initiator, conducts GRASP negotiation in steps with the forwarding Service Responder, computing Service Responder, and storage Service Responder based on the candidate node list determined in Section 4.2. This section defines the GRASP message type, message content, processing logic, and convergence mechanism used in the negotiation process. The negotiation interaction follows the <xref target="RFC8990"/> specification, and all messages are serialized using CBOR.</t>
		<section>
		  <name>GRASP Message and Objective Definition</name>
		  <t>The negotiation process uses the following GRASP message types:</t>
		  <ul>
		    <li>M_REQ_NEG (3): Initiate a negotiation request.</li>
			<li>M_NEGOTIATE (5): Conduct multiple rounds of negotiation and exchange proposals.</li>
			<li>M_WAIT (7): Request the peer to wait, extending the timeout.</li>
			<li>M_END (6): End the negotiation, carrying an option of acceptance (O_ACCEPT) or decline (O_DECLINE).</li>
		  </ul>
		  <t>All messages MUST carry the `session-id` field, which is generated by the Service Initiator ASA at the start of each negotiation session and is used to associate all messages of the same session. The `session-id` MUST be a random number, and its collision probability SHOULD be extremely low.</t>
		  <t>This document uses the `Resource Manager` Objective defined by <xref target="Network-Service-Auto-Deployment"/>, and only need to supplement the intent information and resource reservation status information carried in its `objective-value`. Its format is as follows:</t>
<figure anchor="fig-autonomic-network-service-value-extended">
  <name>Extended Format of Resource Manager's objective-value</name>
  <artwork><![CDATA[
    objective-value = autonomic-network-service-value

    autonomic-network-service-value = [
        [ service-type, service-id, service-lifetime, service-tag ],
        [* resource-requirement-pair ],
        [ intent-des, proposal-list ]
    ]
  ]]></artwork>
</figure>
		  <t>In the request message, the `objective-value` include `intent-des`, which is the original service intent (including network, computing, and storage requirements). The intent-des object contains three optional members shown as follow. The `network-intent`, `compute-intent`, and `storage-intent` objects are defined in <xref target="Service-Intent"/> From the Service Responder list obtained in Section 4.2, each node falls into one of three categories: storage, computing, and forwarding responders. The intent initiator MAY construct different `intent-des` based on the responder type. For example, for a computing Service Responder, the `intent-des` contains the `compute-intent` field information from the original intent.</t>
		  <figure anchor="fig-intent-des">
  <name>Service Intent Content Structure</name>
  <artwork type="cddl"><![CDATA[
intent-des = {
    ? "network" : network-intent,
    ? "compute" : compute-intent,
    ? "storage" : storage-intent
}
  ]]></artwork>
</figure>
		  
		  <t>In the response message, the `objective-value` include `proposal-list`, which is the list of feasible solutions generated by the RM ASA. The format of `proposal-list` is defined as follows:</t>
<figure anchor="fig-proposal-list-format" title="Format of proposal-list">
  <artwork type="cbor-diag"><![CDATA[
proposal-list = [* proposal]
proposal = {
  "proposal-id": uint,           ; Unique identifier of the proposal
  "guaranteed-resources": {      ; Amount of resources guaranteed
    ? "bandwidth": uint,          ; bps
    ? "latency": uint,            ; ms (contribution to latency)
    ? "compute-capacity": uint,   ; GFLOPS
    ? "storage-capacity": uint,   ; GB
    ? "storage-throughput": uint, ; MB/s
    ...
  },
  "expected-contributions": {     ; Expected contributions to end-to-end SLOs
    ? "added-latency": uint,       ; ms
    ? "added-jitter": uint,        ; ms
    ...
  },
  ? "cost": uint,                  ; Optional cost metric
  ? "expiry-time": uint            ; Validity period of the proposal (milliseconds)
}
  ]]></artwork>
</figure>
        <t>If an RM ASA cannot provide any feasible solution, it SHOULD carry the O_DECLINE option in the M_END message and MAY attach a reason string.</t> 
		</section>
		
		<section>
		  <name>Negotiation Process</name>
		  <t>The negotiation process is divided into the following steps. The Service Initiator ASA needs to initiate negotiation sessions for each candidate node sequentially or in parallel. For clarity, the following description takes a single Service Responder as an example.</t>
		  <t>Step 1: Initiate a Negotiation Request. Service Initiator ASA sends an M_REQ_NEG message to the target RM ASA. The message format is:[M_REQ_NEG, session-id, objective] Where:</t>
		  <ul>
		    <li>session-id: Newly generated random number.</li>
			<li>objective: Contains the GRASP Objective named `Resource Manager`, `loop-count` initially set to GRASP_DEF_LOOPCT, and `objective-value` as the original service intent object `intent-des`.</li>
		  </ul>
		  <t>After sending the message, the Service Initiator ASA starts a negotiation timer with an initial value of GRASP_DEF_TIMEOUT (default 60000 milliseconds). If the timer expires before a response is received, it is considered a negotiation failure, and the initiator MAY attempt retransmission (using exponential backoff) or abandon the node.</t>
		  <t>Step 2: RM ASA Processes the Request and Responds. After receiving the M_REQ_NEG message, the RM ASA performs the following operations:</t>
		  <ul>
		    <li>Parse the `objective-value` to obtain the resource requirements (bandwidth, latency, computing capacity, etc.) from the service intent. The `objective-value` contains `intent-content`, which MAY involve multiple types of intent expressions such as `storage-intent`, `compute-intent`, and `network-intent`. The resource content to be negotiated varies depending on the type.</li>
		    <li>Based on the negotiation intent type, it queries the corresponding local real-time resource status for that intent and generates one or more feasible resource allocation proposals. Each proposal MUST include the amount of resources guaranteed and the expected contribution to end-to-end performance (e.g., added latency).</li>
		    <li>If at least one proposal is generated, it constructs an M_NEGOTIATE message to return; if it cannot generate any proposal that meets the tolerance, it constructs an M_END message (carrying the O_DECLINE option) to return.</li>
		  </ul>
		  <t>Upon a successful response, the Service Responder RM ASA sends an M_NEGOTIATE message in the format [M_NEGOTIATE, session-id, objective], where the objective-value is a proposal-list containing all feasible proposals. Upon failure, it sends an M_END message in the format [M_END, session-id, [O_DECLINE, ?reason]], where reason is an optional UTF-8 string explaining the cause. After sending M_NEGOTIATE, the RM ASA SHOULD temporarily reserve the resources involved in the proposed proposals. However, the reservation time SHOULD NOT be too long (it is RECOMMENDED that it does not exceed GRASP_DEF_TIMEOUT) to prevent deadlock.</t>
		  <t>Step 3: Service Initiator ASA Processes the Response. After receiving the response, the Service Initiator ASA, if it receives an M_END with O_DECLINE, records the node's rejection and attempts the next candidate node. If it receives an M_NEGOTIATE, it parses the `proposal-list`, extracting the resource guarantees and contribution values of each proposal. The Service Initiator ASA MUST evaluate whether these proposals are acceptable based on the end-to-end constraints.If the currently received list of proposals is insufficient to meet the end-to-end constraints, the Service Initiator ASA MAY initiate multiple rounds of negotiation, sending a new M_NEGOTIATE message, adjusting the request, and decrementing the `loop-count`. This process MAY be iterated multiple times until an agreement is reached or the negotiation is terminated.</t>
		  <t>Step 4: Multiple Rounds of Negotiation and Convergence. If the Service Initiator ASA wishes to adjust the request, it MAY send an M_NEGOTIATE message, where the `objective-value` MAY contain an updated `intent-des` or specify the proposal ID it wishes to negotiate. Upon receiving the M_NEGOTIATE message, the RM ASA SHOULD regenerate the proposal list and ensure that the `loop-count` is decremented. If the `loop-count` is reduced to 0, it MUST stop the negotiation and return an M_END with O_DECLINE. If either party needs more time to process during the negotiation, it MAY send an M_WAIT message in the format [M_WAIT, session-id, waiting-time], where `waiting-time` is the suggested extension time (in milliseconds) for the peer to wait. Upon receiving an M_WAIT, the peer SHOULD reset the negotiation timer to `waiting-time` and continue waiting.</t>
		  <t>Step 5: Negotiation Termination. When both parties reach an agreement, the Service Initiator ASA sends an M_END message carrying the O_ACCEPT option, in the format [M_END, session-id, [O_ACCEPT]]. Upon receiving the M_END message, the peer MUST immediately terminate the negotiation session and release temporary resources (unless the resources have been confirmed and reserved). If the negotiation fails due to timeout or exhaustion of the `loop-count`, both parties MUST release all temporarily reserved resources.</t>
		  <t>Step 6: Coordination of Multi-Node Negotiation. The Service Initiator ASA needs to conduct the above negotiations with the forwarding, computing, and storage nodes sequentially or in parallel. The following order is RECOMMENDED:</t>
		  <ul>
		    <li>When the `compute-intent` contains the `transport-coordination` field and its value is `TRUE`, it is RECOMMENDED to first negotiate the path with the forwarding node, then negotiate computing resources with the computing nodes on that path, and finally negotiate storage with the storage node.</li>
			<li>When the `compute-intent` contains the `transport-coordination` field and its value is `FALSE`, it is RECOMMENDED to first negotiate with the computing node and storage node, and then negotiate the path with the forwarding node based on the locations of the selected nodes.</li>
		  </ul>
		  <t>For each candidate path, the Service Initiator ASA MUST collect responses from all relevant nodes on that path and proceed to the proposal integration described in Section 4.4. If the current path negotiation fails, it SHOULD release all temporarily reserved resources on that path and attempt the next candidate path.</t>
		</section>
      </section>
      <section>
        <name>End-to-End Coordination and Solution Integration</name>
        <t>After collecting the responses from all Service Responders on the current path, the Service Initiator ASA MUST perform end-to-end coordination. The specific steps are as follows:</t>
        <ul>
          <li>Select one proposal from the proposal list of each responding node to form a complete end-to-end resource configuration chain. Ensure that the selected proposals are compatible with each other in terms of resource types (e.g., the bandwidth committed by the forwarding node matches the transmission bandwidth required by the computing node).</li>
		  <li>If multiple combinations of proposals meet the requirements, the Service Initiator ASA SHOULD select the optimal combination based on local policies (e.g., minimum cost, lowest latency). If the current path supports multipath, the Service Initiator ASA SHOULD distribute traffic across multiple paths and MUST ensure that the combined performance of each path meets the overall service level objective.</li>
          <li>Once a combination of proposals that meets the conditions is determined, the Service Initiator ASA MUST send a GRASP M_END message (carrying O_ACCEPT) to all relevant RM ASAs on the path to formally confirm the selected proposals and reserve the resources. Upon receiving the confirmation, each RM ASA SHOULD convert the temporary reservation into a formal reservation and persistently store the binding information.</li>
          <li>Regardless of whether the deployment is successful or not, the Service Initiator ASA MUST return a standardized feedback message to the Service Initiator. This feedback MUST include the final deployment result; if successful, it MUST detail the actually allocated resource details (including the actual path, the amount of resources committed by each node, and the expected end-to-end performance); if failed, it SHOULD provide the reason for the failure.</li>
		</ul>
        <t>If the current path negotiation fails, the Service Initiator ASA MUST release all temporarily reserved resources and attempt the next candidate path. If all candidate paths fail to meet the requirements, the Service Initiator ASA MUST report the intent deployment failure to the upper layer.</t>
      </section>
      <section>
        <name>Dynamic Maintenance and Adjustment</name>
		<t>During the intent lifecycle, if a Service Responder RM ASA cannot maintain the original proposal due to changes in local resources, it MAY actively initiate renegotiation. The renegotiation process is as follows:</t>
		<ul>
		  <li>The RM ASA sends an M_REQ_NEG message to the Service Initiator ASA, carrying the original intent object "intent-des", indicating the need for renegotiation.</li>
		  <li>Upon receiving this message, the Service Initiator ASA triggers the renegotiation process. It MUST re-collect the latest feasible proposals from each node on the current path following the steps in Section 4.3 and re-integrate them.</li>
		  <li>If the original proposal cannot be maintained, an attempt MAY be made to adjust the allocation or switch to another candidate path.</li>
		</ul>
		<t>In addition, the Service Initiator ASA MAY periodically evaluate link quality and proactively initiate renegotiation to seek a more optimal resource allocation scheme, thereby ensuring the continuous fulfillment of service level objectives. During renegotiation, the original resource allocation remains effective until the new negotiation is successfully confirmed. If negotiation for increased requirements fails, the original allocation remains unchanged, and the responder MUST NOT revoke it; if negotiation for reduced requirements succeeds, the excess resources are released; if the negotiation is terminated, both parties revert to the original allocation.</t>
      </section>
      <section>
        <name>Intent Termination and Resource Release</name>
		<t>When the service intent lifecycle ends or is externally revoked, the Service Initiator ASA MUST actively release the occupied resources. To achieve this, the Service Initiator ASA sends an M_REQ_NEG message to all relevant Service Responder RM ASAs, in which the carried intent object MUST have all resource requirements set to zero. Upon receiving this message, each RM ASA MUST confirm the release of local resources and reply with an M_END (O_ACCEPT).</t>
		<t>If the intent resource has a lease period, each RM ASA MUST automatically release the local resources when the lease expires and MAY send an M_REQ_NEG carrying a resource status change notification to the Service Initiator ASA, informing that the resources have been released or the status has changed. Upon receiving the notification, the Service Initiator ASA updates the locally maintained intent status and MAY provide feedback to the upper-layer system that the resources have expired.</t>
		<t>To prevent resource leaks caused by the failure of the Service Initiator ASA, each RM ASA MUST have a timeout mechanism for temporarily reserved resources and automatically reclaim the resources after the timeout. Formally reserved resources SHOULD also have a lease period. When the lease is half expired, the Service Initiator ASA MAY initiate a lease renewal negotiation. If the lease is not renewed in time, the RM ASA MUST automatically release the resources upon lease expiration and notify the initiator.</t>
      </section>
    </section>
    
    
    <section anchor="IANA">
    <!-- All drafts are required to have an IANA considerations section. See RFC 8126 for a guide.-->
      <name>IANA Considerations</name>
      <t>This document reuses the `Resource Manager` GRASP objective name defined in <xref target="Network-Service-Auto-Deployment"/> and does not request a new objective name. This document extends the objective value of this objective to carry the intent-object; however, the specific format of the intent-object is defined by an external specification and is out of scope of this document. This document does not request the establishment of new IANA registries.</t>
    </section>
    
    <section anchor="Security">
      <!-- All drafts are required to have a security considerations section. See RFC 3552 for a guide. -->
      <name>Security Considerations</name>
      <t>The mechanisms described in this document fully rely on the secure communication environment provided by the Autonomic Control Plane (ACP) <xref target="RFC8994"/> and comply with the security specifications of the Generic Autonomic Signaling Protocol (GRASP) <xref target="RFC8990"/>. All autonomous nodes participating in intent negotiation must complete the Bootstrapping Remote Secure Key Infrastructure (BRSKI) <xref target="RFC8995"/> before joining the autonomous domain, to obtain a trusted identity and establish a secure control-plane channel.</t>
      <t>The intent injection and parsing process involves an external management interface, which should implement strict identity authentication and authorization mechanisms to prevent unauthorized intent issuance. After receiving an external intent, the RM ASA may perform validity verification according to local policies to ensure the intent is within the allowed scope.</t>
      <t>During GRASP negotiation, all messages carrying the intent-object are transmitted encrypted via ACP, ensuring confidentiality and integrity of intent content and negotiation results. Inter-node negotiation interactions shall follow GRASP's anti-replay and anti-tampering mechanisms to prevent malicious nodes from forging or modifying negotiation messages.</t>
      <t>When intent involves resource reservation and release, the RM ASA must ensure the authorization of resource operations, responding only to requesters authenticated via ACP with corresponding permissions. After the intent lifetime ends, resources must be released promptly to prevent resource leakage and malicious exploitation.</t>
      <t>Overall, the security and reliability of the mechanisms described in this document are built upon the existing security infrastructure of ACP, BRSKI, and GRASP. Any deployment must ensure that these foundational security measures are fully implemented.</t>
    </section>
    
    <!-- NOTE: The Acknowledgements and Contributors sections are at the end of this template -->
  </middle>

  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7575.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8990.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8994.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8995.xml"/>
        <!-- The recommended and simplest way to include a well known reference -->
        
      </references>
 
      <references>
        <name>Informative References</name>
       <reference anchor="Network-Service-Auto-Deployment" target="https://datatracker.ietf.org/doc/draft-ietf-anima-network-service-auto-deployment/">
         <front>
           <title>A Generic Autonomic Deployment and Management Mechanism for Resource-based Network Services</title>
           <author fullname="Sheng Jiang" initials="S." surname="Jiang" role="editor">
             <organization>Beijing University of Posts and Telecommunications</organization>
           </author>
           <author fullname="Zongpeng Du" initials="Z." surname="Du">
             <organization>China Mobile</organization>
           </author>
           <date year="2026"/>
         </front>
         <seriesInfo name="Internet-Draft" value="draft-ietf-anima-network-service-auto-deployment-07"/>
       </reference>
       <reference anchor="Service-Intent" target="https://datatracker.ietf.org/doc/draft-zhu-anima-service-intent/">
         <front>
           <title>Definition of Service Intent in Autonomic Networks</title>
           <author fullname="Bizhu Wang" initials="B." surname="Wang">
             <organization>Beijing University of Posts and Telecommunications</organization>
           </author>
           <author fullname="Longwei Zhu" initials="L." surname="Zhu">
             <organization>Beijing University of Posts and Telecommunications</organization>
           </author>
           <author fullname="Sheng Jiang" initials="S." surname="Jiang">
             <organization>Beijing University of Posts and Telecommunications</organization>
           </author>
           <date year="2026"/>
         </front>
         <seriesInfo name="Internet-Draft" value="draft-zhu-anima-service-intent-00"/>
       </reference>         
      </references>
    </references>
    
 </back>
</rfc>