<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<!-- You want a table of contents -->
<?rfc symrefs="yes"?>
<!-- Use symbolic labels for references -->
<?rfc sortrefs="yes"?>
<!-- This sorts the references -->
<?rfc iprnotified="no" ?>
<!-- Change to "yes" if someone has disclosed IPR for the draft -->
<?rfc compact="yes"?>
<rfc category="std" docName="draft-zhu-anima-service-intent-00"
     ipr="pre5378Trust200902">
  <front>
    <title abbrev="service-intent">Definition of Service Intent in Autonomic
    Networks</title>

    <author fullname="Longwei Zhu" initials="L." surname="Zhu">
      <organization abbrev="BUPT">Beijing University of Posts and
      Telecommunications</organization>

      <address>
        <postal>
          <street>No. 10 Xitucheng Road</street>

          <city>Haidian District, Beijing</city>

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

        <email>lwzhu@bupt.edu.cn</email>
      </address>
    </author>

    <author fullname="Bizhu Wang" initials="B." surname="Wang">
      <organization abbrev="BUPT">Beijing University of Posts and
      Telecommunications</organization>

      <address>
        <postal>
          <street>No. 10 Xitucheng Road</street>

          <city>Haidian District, Beijing</city>

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

        <email>wangbizhu_7@bupt.edu.cn</email>
      </address>
    </author>

    <author fullname="Sheng Jiang" initials="S." surname="Jiang">
      <organization abbrev="BUPT">Beijing University of Posts and
      Telecommunications</organization>

      <address>
        <postal>
          <street>No. 10 Xitucheng Road</street>

          <city>Haidian District, Beijing</city>

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

        <email>shengjiang@bupt.edu.cn</email>
      </address>
    </author>

    <area>Operations and Management</area>

    <workgroup>ANIMA</workgroup>

    <abstract>
      <t>While ANIMA Intent enables goal-oriented control within an Autonomic
      Domain, emerging services (e.g., AI inference) require a common,
      interoperable representation for expressing service-level objectives and
      constraints that span network, compute, and storage resources, rather
      than connection-centric descriptions. This document defines Service
      Intent for Autonomic Networks by specifying a structured semantic model
      and a concise format with identification, scope, versioning, and
      lifecycle semantics.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="intro" title="Introduction">
      <t>Within the ANIMA framework, intent is an abstract, declarative,
      high-level policy applicable to an Autonomic Domain. Expressed in terms
      of desired goals and constraints, intent steers network operation rather
      than acting as device-level configuration commands. It is distributed
      across the domain and interpreted by autonomic nodes, which translate it
      into target configurations while considering local state and
      environmental constraints. This approach enables closed-loop automation
      and reduces the operational burden on human operators by shifting from
      imperative configuration to goal-oriented management.</t>

      <t>However, emerging services increasingly rely on the coordinated use
      of heterogeneous resources beyond simple connectivity. Traditional
      connection-centric service descriptions, which primarily specify
      endpoints and basic transport characteristics, are insufficient to
      represent user-perceived quality objectives for complex tasks such as AI
      inference, interactive media processing, and large-scale content
      rendering. These services are often constrained not only by network
      performance (e.g., bandwidth, latency, and jitter), but also by compute
      availability (e.g., processing capacity and placement-induced request
      latency) and storage capabilities (e.g., capacity and access
      throughput). Moreover, practical deployment decisions frequently require
      expressing cross-resource coordination constraints, such as coupling
      compute placement with transport path selection, or accounting for the
      time cost of data access along selected paths.</t>

      <t>This document introduces and defines the concept of Service Intent
      for Autonomic Networks by analyzing the characteristics of user service
      demand expressed as intent. The aim is to provide a structured,
      declarative, semantic framework that enables service-level requirements
      and constraints across network, compute, and storage dimensions to be
      specified consistently. By enabling the autonomic interpretation of
      these requirements within an Autonomic Domain, the Service Intent model
      facilitates the automated discovery, selection, routing, and scheduling
      of resources, thereby supporting the automated deployment of services
      and reducing the complexity of using heterogeneous resources. The
      detailed mechanisms for realizing intent interpretation and automated
      service deployment are out of scope for this document and are described
      in <xref target="I-D.ietf-anima-network-service-auto-deployment"/> and
      [draft-du-anima-service-intent-auto-deployment].</t>

      <t>In addition, this document specifies a concrete, machine-readable
      format for Service Intent to support interoperable intent exchange and
      processing within an Autonomic Domain, including essential fields for
      identification, scoping, versioning, and lifecycle management, and a
      structured representation of intent content aligned with network-,
      compute-, and storage-resource requirement intents.</t>
    </section>

    <section anchor="requirements" title="Requirements">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL",
      "SHALL&nbsp;NOT", "SHOULD", "SHOULD&nbsp;NOT", "RECOMMENDED",
      "NOT&nbsp;RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be
      interpreted as described in BCP&nbsp;14 <xref target="RFC2119"/> <xref
      target="RFC8174"/> when, and only when, they appear in all capitals, as
      shown here.</t>
    </section>

    <section anchor="service-intent" title="Definition of Service Intent">
      <t>This section defines a Service Intent as a structured,
      machine-interpretable declaration of the desired service objectives and
      associated resource constraints for autonomic service deployment within
      Autonomic Networks.</t>

      <section anchor="service-intent-overview" title="Overview and Metadata">
        <t>Unlike traditional connectivity-oriented service descriptions that
        primarily specify endpoints and transport parameters, a Service Intent
        expresses coordinated, multi-dimensional requirements across
        heterogeneous infrastructure resources. These requirements MAY span
        compute resources, storage resources, transport resources, and
        cross-layer or cross-domain constraints. By abstracting the desired
        service outcome rather than specific configuration actions, a Service
        Intent enables automated resource discovery, path computation, compute
        scheduling, and storage placement, thereby supporting goal-driven
        service orchestration and deployment.</t>

        <t>The Service Intent model defined herein is outcome-oriented rather
        than configuration-oriented. It specifies the intended operational
        state of a service without mandating implementation procedures,
        device-level configurations, or specific realization mechanisms.</t>

        <t>The Service Intent consists of the following fields:</t>

        <figure>
          <artwork><![CDATA[ service-intent = {
 "intent-id"        : uint,        
 "intent-version"   : uint,
 "intent-timestamp" : uint,        ; Epoch time
 "intent-scope"     : scope-obj,   ; in seconds
 "intent-content"   : content-obj
 }
]]></artwork>
        </figure>

        <t><list style="symbols">
            <t>Intent Identifier(unsigned integer). The Intent Identifier
            uniquely identifies an intent instance within its applicable
            scope. It MUST be unique within the defined scope and MUST remain
            stable across version updates of the same intent.</t>

            <t>Intent Version(unsigned integer). The Intent Version indicates
            the revision of a Service Intent. It MUST increase monotonically
            upon modification and MUST enable determination of the most recent
            intent state.</t>

            <t>Intent Timestamp(unsigned integer, epoch time). The Intent
            Timestamp indicates the time at which a Service Intent instance
            was created, issued, or last updated.</t>

            <t>Intent Lifetime(unsigned integer, seconds). The Intent Lifetime
            defines the temporal validity period during which a Service Intent
            is considered active, observable, and eligible for evaluation or
            enforcement within its declared Intent Scope. A Service Intent
            instance MUST be considered expired when its defined lifetime
            condition is met.</t>

            <t>Intent Scope (object). The Intent Scope defines the
            applicability scope of a Service Intent. It MUST identify at least
            one Autonomic Domain in which the intent is valid, and MAY further
            restrict applicability to specific sub-domains, logical
            partitions, tenants, service slices, or topology segments. An
            autonomic node MUST only process the Service Intent applicable
            within its operational scope.<figure>
                <artwork><![CDATA[ scope-obj = {
  "domain"             : tstr,
  ? "subdomain"        : tstr,
  ? "tenant"           : tstr,
  ? "topology-segment" : tstr
}
]]></artwork>
              </figure></t>

            <t>Intent Content (object). A Service Intent MUST be expressed as
            a structured object that MAY include one or more of the following
            logical components defined in <xref target="requirement-intent"/>:
            a) Network resource requirement intent; b) Compute resource
            requirement intent; c) Storage resource requirement intent. Each
            component declaratively specifies the desired target state of the
            corresponding resource dimension and MAY include inter-resource
            dependency constraints. The content-obj MAY include any subset of
            the three members, depending on the service scenario. Processing
            of content-obj MUST handle each present member independently
            according to the semantics defined in <xref
            target="requirement-intent"/>, and SHOULD combine multiple present
            members to derive a consistent multi-resource provisioning
            decision. If none of the three members is present, content-obj is
            invalid and MUST be ignored. Any unrecognized additional member
            MUST be ignored and MUST NOT cause failure in processing of
            recognized members.<figure>
                <artwork><![CDATA[ content-obj = {
  ? "network" : network-intent,
  ? "compute" : compute-intent,
  ? "storage" : storage-intent
}
]]></artwork>
              </figure></t>
          </list></t>
      </section>

      <section anchor="requirement-intent"
               title="Resource Requirement Intents">
        <section anchor="network-intent"
                 title="Network Resource Requirement Intent">
          <t>The Network resource requirement intent specifies the required
          network resource capabilities necessary to satisfy the service. It
          expresses quantitative and qualitative requirements over transport
          resources within the declared Intent Scope. These requirements
          define the desired performance, availability, and forwarding
          characteristics of network resources allocated for the service.</t>

          <t>The Network resource requirement intent includes the following
          fields: <figure>
              <artwork><![CDATA[ network-intent = {
  "Bandwidth-Requirement" :  uint,   ; Bandwidth Requirement(bps)
  "latency-bound"         : uint,    ; Latency Bound(ms)
  "jitter-bound"          : uint,    ; Jitter Bound(ms)
  "destinations"          : 1* tstr, ; non-empty array of text strings
  "multipath-permission"  : bool,    ; TRUE allows multipath
 }]]></artwork>
            </figure><list style="symbols">
              <t>Bandwidth Requirement (unsigned integer, bps). The minimum or
              guaranteed bandwidth required. The value MUST be greater than or
              equal to 0; if it is specified as zero, no minimum bandwidth
              constraint is imposed.</t>

              <t>Latency Bound (unsigned integer, ms). The maximum acceptable
              end-to-end delay. The value MUST be greater than or equal to 0;
              if it is specified as zero, no latency constraint is
              imposed.</t>

              <t>Jitter Bound (unsigned integer, ms). The maximum acceptable
              delay variation. The value MUST be greater than or equal to 0;
              if it is specified as zero, no jitter constraint is imposed.</t>

              <t>Destinations (array of text strings, non-empty). Target
              endpoint or location identifiers; MUST contain at least one
              element.</t>

              <t>Multipath Permission (boolean). A boolean indicator
              specifying whether multipath transport MAY be used; TRUE allows
              multipath, FALSE forbids multipath.</t>
            </list></t>
        </section>

        <section anchor="compute-intent"
                 title="Compute Resource Requirement Intent">
          <t>The Compute resource requirement intent specifies the required
          computational resource capabilities necessary to satisfy the
          service. It expresses quantitative and qualitative requirements over
          compute resources within the declared Intent Scope. These
          requirements define the desired processing capacity, placement
          constraints, and latency characteristics of compute resources
          allocated for the service.</t>

          <t>The Compute resource requirement intent includes the following
          fields.<figure>
              <artwork><![CDATA[ compute-intent = {
  ; Request Latency Bound(ms)
  "request-latency"         : uint,

  ; TRUE allows concurrent transport/compute
  "transport-coordination"  : bool,

  ; Compute Capacity Requirement
  "compute-capacity"        : 1* compute-capa
}

compute-capa = {
  ; "cpu" or "gpu"
  "type"       : ("cpu" / "gpu"),

  ; Compute capacity value(GFLOPS)
  "capacity"   : uint
}
]]></artwork>
            </figure></t>

          <t><list style="symbols">
              <t>Request Latency Bound (unsigned integer, ms). The maximum
              acceptable request-to-response latency between the service and
              the compute resource. The value MUST be greater than or equal to
              0; if it is specified as zero, no latency constraint is
              imposed.</t>

              <t>Transport Coordination (boolean). A boolean indicator that
              specifies whether compute processing and data transport are
              permitted to proceed concurrently.<list style="symbols">
                  <t>TRUE: Compute processing and data transport MAY proceed
                  concurrently (i.e., streaming or pipelined execution). Data
                  MAY be transmitted incrementally during processing.</t>

                  <t>FALSE: Compute processing and data transport MUST be
                  executed in separate phases. Data MUST be fully processed
                  before transmission, or fully transmitted before processing
                  begins.</t>
                </list></t>

              <t>Compute Capacity Requirement (array). Contains at leaset one
              compute-capacity element. Each compute-capacity element is a
              structured requirement that specifies the minimum compute
              capacity needed to satisfy the service for a given type of
              computing resource. The compute-capacity is as follows.<list
                  style="symbols">
                  <t>Type (text). Indicates the type of compute resource. The
                  values "cpu" and "gpu" are defined by this document.</t>

                  <t>Capacity (unsigned integer, GFLOPS). The minimum compute
                  capacity required for the specified type. The value MUST be
                  greater than or equal to 0; if it is specified as zero, no
                  minimum compute capacity constraint is imposed for that
                  type.</t>
                </list></t>
            </list></t>
        </section>

        <section anchor="storage-intent"
                 title="Storage Resource Requirement Intent">
          <t>The Storage resource requirement intent specifies the required
          storage resource capabilities necessary to satisfy the service. It
          expresses quantitative and qualitative requirements over storage
          resources within the declared Intent Scope. These requirements
          define the desired capacity, performance, locality, and persistence
          characteristics of storage resources allocated for the service.</t>

          <t>The Storage resource requirement intent includes the following
          fields:<figure>
              <artwork><![CDATA[ storage-intent = {
  ; Storage Capacity Requirement(GB)
  "storage-capacity"          : uint,

  ; Throughput numeric value
  "storage-throughput"        : uint,

  ? "storage-throughput-unit" : ("MB/s" / "GB/s"),
}]]></artwork>
            </figure><list style="symbols">
              <t>Storage Capacity Requirement (unsigned integer, GB). The
              required storage capacity representing the temporary or
              persistent space necessary to satisfy the service. The value
              MUST be greater than or equal to 0; if it is specified as zero,
              no minimum storage capacity constraint is imposed.</t>

              <t>Storage Throughput Requirement (unsigned integer, MB/s or
              GB/s). The required data access throughput representing the read
              and write rate necessary to satisfy the workload. The value MUST
              be greater than or equal to 0; if it is specified as zero, no
              minimum storage throughput constraint is imposed.</t>
            </list></t>
        </section>
      </section>
    </section>

    <section anchor="iana-considerations" title="IANA Considerations">
      <t>There is currently no IANA consideration.</t>
    </section>

    <section anchor="sec-considerations" title="Security Considerations">
      <t>A strong security environment is required for the Service Intent,
      since malicious injection or tampering would pose a significant risk to
      automated resource selection and service deployment. If a Service Intent
      is disseminated and synchronized across an autonomic domain, the
      signaling channel must provide mutual authentication and integrity
      protection consistent with the Autonomic Domain security environment. In
      addition, an intent instance should employ an explicit signature to
      provide object-level authentication, integrity, and non-repudiation.</t>

      <t>TODO more security considerations.</t>
    </section>
  </middle>

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

      <?rfc include='reference.RFC.8174'?>

      <?rfc include='reference.RFC.8990'?>
    </references>

    <references title="Informative References">
      <?rfc include='reference.RFC.7575'?>

      <?rfc include='reference.RFC.8993'?>

      <reference anchor="I-D.ietf-anima-network-service-auto-deployment">
        <front>
          <title>An Intent-based Framework of Network Services Autonomic
          Deployment and Management</title>

          <author fullname="Sheng Jiang" initials="S." surname="Jiang">
            <organization>Beijing University of Posts and
            Telecommunications</organization>
          </author>

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

          <date day="1" month="March" year="2026"/>

          <abstract>
            <t>This document explores a number of issues affecting the
            decision to use a stateful or stateless forwarding mechanism by
            the join router (aka join assistant) during the bootstrap process
            for ANIMA.</t>
          </abstract>
        </front>

        <seriesInfo name="Internet-Draft"
                    value="draft-ietf-anima-network-service-auto-deployment-07"/>
      </reference>
    </references>
  </back>
</rfc>
