<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-zhao-opsawg-agent-gateway-policy-00" category="std" consensus="true" submissionType="IETF" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="Agent Gateway Policy">Agent Gateway Policy Control Model</title>
    <seriesInfo name="Internet-Draft" value="draft-zhao-opsawg-agent-gateway-policy-00"/>
    <author initials="J." surname="Zhao" fullname="Jing Zhao" role="editor">
      <organization>China Unicom</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>zhaoj501@chinaunicom.cn</email>
      </address>
    </author>
    <author initials="R." surname="Pang" fullname="Ran Pang">
      <organization>China Unicom</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>pangran@chinaunicom.cn</email>
      </address>
    </author>
    <author initials="S." surname="Zhang" fullname="Shuai Zhang">
      <organization>China Unicom</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>zhangs366@chinaunicom.cn</email>
      </address>
    </author>
    <date year="2026" month="July" day="06"/>
    <area>Operations and Management Area</area>
    <workgroup>OPSAWG</workgroup>
    <abstract>
      <?line 54?>

<t>This document defines an operator-facing management and policy control model for operator-managed Agent Gateways.  The model controls and observes interactions mediated by an Agent Gateway; it does not manage, govern, or modify the internal behavior or lifecycle of an agent.</t>
      <t>Agent-related identifiers, agent groups, tenants, task classes, and service levels are used only as gateway-recognized policy matching attributes.  Policies are enforced at the Agent Gateway and, when validated gateway attachment bindings provide suitable selectors, at associated network enforcement points.</t>
      <t>The model is organized around four core policy classes: Interaction Access Control, QoS and Flow Control, Invocation and Token Control, and Path Selection.  The model also defines three supporting management models: Subject and Attachment Binding, Applied Policy State and Telemetry, and Policy Lifecycle and Failure Handling.</t>
      <t>This document defines a YANG module for configuring and observing Agent Gateway policy control state.  It does not define agent-runtime governance, agent reasoning or planning, prompt or model-output governance, global agent identity registration, DNS, service discovery, or the semantics of existing ACL, QoS, routing, VPN, traffic-engineering, or network-slice mechanisms.</t>
    </abstract>
  </front>
  <middle>
    <?line 66?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>AI agents are increasingly used to interact with other agents, invoke tools, access models, consume network resources, and consume compute or model resources.  In operator-managed deployments, such interactions may traverse an Agent Gateway that is controlled by a network operator, service provider, or enterprise administrator.</t>
      <t>The central assumption of this document is that the operator can manage the Agent Gateway, but does not normally manage the internal behavior of each agent.  The operator may not control an agent's reasoning process, planning logic, prompt construction, model-output filtering, local runtime, tool-selection algorithm, or software implementation.  These aspects may be controlled by application providers, enterprise tenants, device owners, model providers, or other systems.</t>
      <t>Nevertheless, the operator can operate and control the Agent Gateway.  The Agent Gateway can admit or reject sessions, identify authenticated or registered agent contexts, mediate interactions, apply request controls, limit resource usage, select paths, classify traffic, mark traffic, and expose operational state.  Therefore, a policy control model scoped to the Agent Gateway can be useful and deployable.</t>
      <section anchor="design-objective">
        <name>Design Objective</name>
        <t>The objective of this document is to define an operator-facing policy control model for interactions mediated by an Agent Gateway.</t>
        <t>The operator manages the Agent Gateway and its associated enforcement mechanisms, rather than the internal behavior or lifecycle of an agent.  Agent identifiers, agent groups, tenants, task classes, and service levels are used as gateway-recognized policy matching attributes that allow the operator to identify relevant interactions at the gateway.</t>
        <t>A policy defined by this document applies only to gateway-visible or network-visible effects of an interaction that is admitted, mediated, or otherwise handled by an operator-managed Agent Gateway.  Such effects include interaction authorization, session admission, invocation limits, token limits, traffic treatment, and traffic steering.</t>
        <t>This model does not establish a management relationship with an agent.  It does not define control of an agent's reasoning, planning, prompt construction, memory, tool-selection logic, runtime implementation, or lifecycle.</t>
        <t>Operator policies are often expressed in terms of agent-related matching attributes, for example:</t>
        <ul spacing="normal">
          <li>
            <t>permit Agent Group A to communicate with Agent Group B;</t>
          </li>
          <li>
            <t>deny external agents from invoking critical internal agents;</t>
          </li>
          <li>
            <t>limit Agent A to 10 Mbit/s;</t>
          </li>
          <li>
            <t>limit trial agents to 100 model invocations per hour;</t>
          </li>
          <li>
            <t>limit model-token consumption for a tenant;</t>
          </li>
          <li>
            <t>send high-priority agent traffic through a private path; or</t>
          </li>
          <li>
            <t>send low-priority agent traffic through public Internet access.</t>
          </li>
        </ul>
        <t>The enforcement mechanisms available to the operator are usually not agent-internal mechanisms.  They are gateway-local controls, such as session admission, request filtering, invocation-rate control, token-rate control, and audit, or network mechanisms, such as ACLs, QoS policies, traffic policies, routing policies, VPN instances, traffic-engineering policies, or network slices.</t>
        <t>This document defines the policy control layer that connects these two views:</t>
        <t><tt>
Operator policy using gateway-recognized matching attributes
      |
      v
Agent Gateway policy assignment
      |
      v
Subject and attachment binding
      |
      v
Gateway-local or network enforcement selection
      |
      v
Applied policy state, telemetry, and lifecycle handling
</tt></t>
        <t>The model is organized around four core policy classes and three supporting management models.</t>
        <t>The four core policy classes are:</t>
        <ul spacing="normal">
          <li>
            <t>Interaction Access Control;</t>
          </li>
          <li>
            <t>QoS and Flow Control;</t>
          </li>
          <li>
            <t>Invocation and Token Control; and</t>
          </li>
          <li>
            <t>Path Selection.</t>
          </li>
        </ul>
        <t>The three supporting management models are:</t>
        <ul spacing="normal">
          <li>
            <t>Subject and Attachment Binding;</t>
          </li>
          <li>
            <t>Applied Policy State and Telemetry; and</t>
          </li>
          <li>
            <t>Policy Lifecycle and Failure Handling.</t>
          </li>
        </ul>
        <t>The four core policy classes define what kinds of gateway-mediated interaction policies can be applied at the Agent Gateway.  The three supporting models define how the policy matching attribute is identified, how it is associated with gateway or network selectors, how enforcement is observed, and how failures or lifecycle changes are reported.</t>
        <t>The purpose of this document is to define a management and policy control model for Agent Gateway operation.  It does not redefine ACL, QoS, routing, VPN, traffic-engineering, network-slice, identity, DNS, service-discovery, or agent-runtime semantics.</t>
      </section>
    </section>
    <section anchor="scope">
      <name>Scope</name>
      <t>This document applies only to interactions that are admitted, mediated, or otherwise handled by an operator-managed Agent Gateway.  It does not apply policy directly to an agent that is not represented by a gateway-visible context or a validated attachment binding.</t>
      <t>This document is in scope for:</t>
      <ul spacing="normal">
        <li>
          <t>policy control of operator-managed Agent Gateways;</t>
        </li>
        <li>
          <t>gateway-recognized policy matching attributes, including locally known agent identifiers, agent groups, tenants, task classes, service levels, and administrative domains;</t>
        </li>
        <li>
          <t>gateway attachment bindings that relate such matching attributes to gateway sessions or network selectors;</t>
        </li>
        <li>
          <t>agent-to-agent, agent-to-tool, agent-to-model, and agent-to-service interaction access control enforced at the gateway or through referenced network mechanisms;</t>
        </li>
        <li>
          <t>QoS and flow-control policies for traffic associated with gateway-recognized matching attributes;</t>
        </li>
        <li>
          <t>invocation-rate and token-rate policies enforced at the gateway or model-gateway layer;</t>
        </li>
        <li>
          <t>path-selection and traffic-steering policies for traffic associated with gateway-recognized matching attributes;</t>
        </li>
        <li>
          <t>applied policy state, enforcement status, counters, failure reasons, and notifications; and</t>
        </li>
        <li>
          <t>a YANG data model for configuration and operational state.</t>
        </li>
      </ul>
      <t>This document is out of scope for:</t>
      <ul spacing="normal">
        <li>
          <t>controlling the internal reasoning, planning, or decision-making logic of an agent;</t>
        </li>
        <li>
          <t>defining how an agent identity is globally registered, named, or resolved;</t>
        </li>
        <li>
          <t>defining DNS, service-discovery, or agent-registry protocols;</t>
        </li>
        <li>
          <t>defining prompt governance, model-output filtering, agent memory management, or tool-selection algorithms;</t>
        </li>
        <li>
          <t>redefining ACL, QoS, routing, VPN, traffic-engineering, or network-slice semantics;</t>
        </li>
        <li>
          <t>defining inter-domain agent-policy exchange protocols; and</t>
        </li>
        <li>
          <t>defining the full architecture of an Agent Gateway.</t>
        </li>
      </ul>
    </section>
    <section anchor="requirements-language">
      <name>Requirements Language</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP 14
<xref target="RFC8174">RFC2119</xref> when, and only when, they appear in all capitals, as
shown here.</t>
    </section>
    <section anchor="problem-statement">
      <name>Problem Statement</name>
      <t>Existing network management mechanisms are effective at configuring packet, flow, interface, topology, or service policies. Agent-based systems introduce policy expressions that are closer to the agent, tenant, service-level, task, or invocation abstraction. An operator may want to configure policies such as "Agent Group A can access Agent Group B", "Agent A is limited to 10 Mbit/s", or "high-priority agents use a private path". These policies are meaningful to operators, but they are not directly executable by most network devices.</t>
      <t>The problem is not that existing network policy mechanisms are missing. The problem is that Agent Gateway policy control needs a standard way to represent:</t>
      <ul spacing="normal">
        <li>
          <t>the agent-related subject to which a policy applies;</t>
        </li>
        <li>
          <t>the gateway attachment state that relates the subject to executable selectors;</t>
        </li>
        <li>
          <t>the policy class and requested enforcement scope;</t>
        </li>
        <li>
          <t>whether enforcement is performed at the gateway, in the network, or both;</t>
        </li>
        <li>
          <t>which existing policy object is referenced, when applicable;</t>
        </li>
        <li>
          <t>whether the policy has actually become active; and</t>
        </li>
        <li>
          <t>what operational counters or failures are associated with the policy.</t>
        </li>
      </ul>
      <t>The following issues motivate this document.</t>
      <section anchor="operators-control-the-gateway-not-the-agent-runtime">
        <name>Operators Control the Gateway, Not the Agent Runtime</name>
        <t>An operator can operate an Agent Gateway under its administrative control. The operator can configure the gateway, observe gateway state, and integrate the gateway with network controllers, OSS, BSS, telemetry, and security systems.</t>
        <t>The operator normally does not control the internal implementation of each agent. Therefore, a standard policy model that attempts to govern the internal agent runtime, reasoning process, prompt construction, or planning logic is less likely to be deployable in operator-managed environments.</t>
        <t>This document therefore scopes policy control to the Agent Gateway and its associated enforcement mechanisms.</t>
      </section>
      <section anchor="agent-identity-and-network-selectors-differ">
        <name>Agent Identity and Network Selectors Differ</name>
        <t>An operator may express policy using an agent identifier, agent group, tenant, or service level. A network enforcement point typically enforces policy using selectors such as source address, destination address, transport port, interface, tunnel, VPN instance, network slice, routing instance, DSCP, or flow label.</t>
        <t>A direct one-to-one mapping between an agent and an IP address or port is often invalid. An agent may move, reconnect, scale out, share an address with other agents, or be represented by a proxy, service mesh, sidecar, or gateway.</t>
        <t>An implementation MUST NOT assume that an agent is permanently equivalent to an IP address, transport port, tunnel, VPN instance, network slice, or gateway session.</t>
      </section>
      <section anchor="agent-level-policies-need-gateway-bindings">
        <name>Agent-Level Policies Need Gateway Bindings</name>
        <t>A policy such as "limit Agent A to 10 Mbit/s" can only be enforced if the policy control component can determine the current gateway attachment or network selectors associated with Agent A. The mapping can be configured, learned during authentication, derived from session establishment, provided by a registry, supplied by a controller, or observed locally by the gateway.</t>
        <t>A policy model therefore needs to represent binding creation, validation, refresh, expiration, withdrawal, and verification state.</t>
      </section>
      <section anchor="gateway-local-and-network-enforcement-are-different">
        <name>Gateway-Local and Network Enforcement Are Different</name>
        <t>Some policies require gateway-local enforcement because the required context is visible only at the Agent Gateway. Examples include authenticated agent sessions, agent-to-agent invocation context, request-rate limits, model-token usage, concurrent invocations, and application-layer allow/deny decisions.</t>
        <t>Other policies can be applied through network mechanisms when suitable selectors are available. Examples include ACLs, bandwidth limits, QoS marking, traffic treatment, VPN steering, slice selection, and routing policy.</t>
        <t>The model MUST distinguish gateway-local enforcement from network enforcement.</t>
      </section>
      <section anchor="configuration-alone-is-insufficient">
        <name>Configuration Alone Is Insufficient</name>
        <t>Operators need to know not only what policy was configured, but whether the policy has actually been applied. Applied policy state is needed to determine:</t>
        <ul spacing="normal">
          <li>
            <t>which policy assignments apply to a subject;</t>
          </li>
          <li>
            <t>which bindings were used;</t>
          </li>
          <li>
            <t>which enforcement scope was selected;</t>
          </li>
          <li>
            <t>which enforcement points were used;</t>
          </li>
          <li>
            <t>whether the policy is pending, active, partially active, stale, failed, or withdrawn;</t>
          </li>
          <li>
            <t>why enforcement failed; and</t>
          </li>
          <li>
            <t>what counters are associated with the applied policy.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="agent-gateway-policy-control-framework">
      <name>Agent Gateway Policy Control Framework</name>
      <t>The Agent Gateway policy control model is organized around four core policy classes and three supporting management models.</t>
      <t>The four core policy classes define the types of gateway-mediated interaction policies that can be configured and enforced at an operator-managed Agent Gateway:</t>
      <ul spacing="normal">
        <li>
          <t>Interaction Access Control;</t>
        </li>
        <li>
          <t>QoS and Flow Control;</t>
        </li>
        <li>
          <t>Invocation and Token Control; and</t>
        </li>
        <li>
          <t>Path Selection.</t>
        </li>
      </ul>
      <t>The three supporting management models define how these policies are associated with gateway-recognized matching attributes, how they are applied to gateway-local or network enforcement mechanisms, and how the resulting enforcement state is observed:</t>
      <ul spacing="normal">
        <li>
          <t>Subject and Attachment Binding;</t>
        </li>
        <li>
          <t>Applied Policy State and Telemetry; and</t>
        </li>
        <li>
          <t>Policy Lifecycle and Failure Handling.</t>
        </li>
      </ul>
      <t>The four core policy classes describe what policy functions are provided.  The three supporting management models describe how those policies are made operable, including subject resolution, binding validation, enforcement selection, applied state, counters, failure reporting, and lifecycle updates.</t>
      <t>An implementation is not required to support all four core policy classes.  For every supported core policy class, the implementation MUST expose the corresponding gateway-recognized subject association, effective enforcement scope, applied policy state, and lifecycle status.</t>
      <t>An implementation that supports network enforcement MUST expose the validated attachment binding or other evidence used to derive the network selectors.  An implementation that supports only gateway-local enforcement is not required to create network selectors.</t>
    </section>
    <section anchor="reference-model">
      <name>Reference Model</name>
      <t>The reference model is shown below.</t>
      <t><tt>
+----------------------+       +----------------------------------+
| Operator / OSS /     | ----&gt; | Operator-Managed Agent Gateway   |
| Controller           |       |                                  |
+----------------------+       |  Policy Control Component        |
                               |  Gateway-Local Enforcement       |
                               |  - Interaction access control    |
                               |  - Session admission             |
                               |  - Invocation and token control  |
                               |  - Audit and counters            |
                               +----------------------------------+
                                  ^                       |
                                  |                       v
                    gateway-mediated interactions   associated network
                                  |                 enforcement
+----------------------+                           +----------------------+
| Agents / Tools /     |                           | ACL / QoS / TE /      |
| Models / Services    |                           | VPN / Slice /         |
+----------------------+                           | Traffic Steering      |
                                                   +----------------------+
</tt></t>
      <t>The policy control component controls the Agent Gateway's handling of gateway-mediated interactions.  It MAY be implemented inside the Agent Gateway, in a controller associated with the gateway, or as a combination of both.  This document does not require a specific implementation placement.</t>
      <t>The Agent Gateway or policy control component MAY interact with identity providers, authorization systems, agent registries, DNS or service discovery systems, telemetry collectors, audit systems, network controllers, OSS, and BSS systems.  Such systems may provide input to the policy process, but this document does not define their protocols.</t>
      <t>The reference model assumes that the operator manages the Agent Gateway or the policy control component.  It does not assume that the operator controls the internal runtime behavior of each agent.</t>
    </section>
    <section anchor="core-policy-classes">
      <name>Core Policy Classes</name>
      <t>This section defines the four core policy classes.</t>
      <section anchor="interaction-access-control">
        <name>Interaction Access Control</name>
        <t>Interaction Access Control determines whether an interaction mediated by an Agent Gateway is permitted, denied, or rejected.</t>
        <t>An access-control policy MAY be expressed between a source subject and a destination subject.  The subjects are gateway-recognized policy matching attributes and MAY identify an individual agent, an agent group, a tenant, a task class, a service level, or an administrative domain.</t>
        <t>A destination subject MAY represent another agent, an agent group, a tool, a model, a service, an API, or another gateway-visible resource.</t>
        <t>An interaction access-control policy MAY represent:</t>
        <ul spacing="normal">
          <li>
            <t>a whitelist rule;</t>
          </li>
          <li>
            <t>a blacklist rule;</t>
          </li>
          <li>
            <t>a default-permit or default-deny rule;</t>
          </li>
          <li>
            <t>a rule based on agent identifier;</t>
          </li>
          <li>
            <t>a rule based on agent group membership;</t>
          </li>
          <li>
            <t>a rule based on tenant or administrative domain;</t>
          </li>
          <li>
            <t>a rule based on service level or task class; or</t>
          </li>
          <li>
            <t>a rule based on gateway attachment context.</t>
          </li>
        </ul>
        <t>Interaction Access Control governs the handling of an interaction at the Agent Gateway.  It does not imply management authority over either endpoint of that interaction.  It SHOULD be enforced at the Agent Gateway when the required context is visible at the gateway.  If suitable validated network selectors are available, the same policy assignment MAY also reference existing network ACL mechanisms.</t>
        <t>This document does not redefine ACL semantics.  It defines how an interaction access-control assignment is bound to gateway-local or network enforcement state.</t>
        <t>Example:</t>
        <t><tt>
source-subject       = external-agents
destination-subject  = critical-agents
policy-class         = interaction-access-control
default-action       = deny
enforcement-scope    = gateway-and-network
</tt></t>
      </section>
      <section anchor="qos-and-flow-control">
        <name>QoS and Flow Control</name>
        <t>QoS and Flow Control governs network-visible resource treatment for traffic associated with a gateway-recognized policy matching attribute.</t>
        <t>Such policies MAY include:</t>
        <ul spacing="normal">
          <li>
            <t>bandwidth limit;</t>
          </li>
          <li>
            <t>packet-rate limit;</t>
          </li>
          <li>
            <t>burst size;</t>
          </li>
          <li>
            <t>DSCP marking;</t>
          </li>
          <li>
            <t>traffic class;</t>
          </li>
          <li>
            <t>queue or scheduling treatment;</t>
          </li>
          <li>
            <t>shaping or policing behavior; or</t>
          </li>
          <li>
            <t>a reference to an existing QoS or traffic policy object.</t>
          </li>
        </ul>
        <t>When an operator configures a policy such as:</t>
        <t><tt>
Limit Agent A to 10 Mbit/s.
</tt></t>
        <t>the policy control component resolves Agent A to current gateway attachment bindings and applies the corresponding flow-control policy using the available selectors.  The resulting enforcement state is reported as applied policy state.</t>
        <t>A QoS or flow-control policy MUST NOT be reported as active for per-agent network enforcement unless the selected network selectors can identify the relevant agent traffic at the required granularity.</t>
        <t>This policy class is intended for network-visible resources.  It is not intended to represent token quotas, prompt budgets, model-compute budgets, or other application-layer resources unless an explicit deployment-specific mapping is configured.</t>
        <t>Example:</t>
        <t><tt>
source-subject       = agent-a
policy-class         = qos-flow-control
enforcement-scope    = network
bandwidth-limit-kbps = 10000
</tt></t>
      </section>
      <section anchor="invocation-and-token-control">
        <name>Invocation and Token Control</name>
        <t>Invocation and Token Control governs gateway-visible application-layer resources.</t>
        <t>Such policies MAY include:</t>
        <ul spacing="normal">
          <li>
            <t>request-rate limit;</t>
          </li>
          <li>
            <t>model-invocation-rate limit;</t>
          </li>
          <li>
            <t>token-rate limit;</t>
          </li>
          <li>
            <t>token-quota limit;</t>
          </li>
          <li>
            <t>concurrent-invocation limit;</t>
          </li>
          <li>
            <t>session limit; and</t>
          </li>
          <li>
            <t>exceed action.</t>
          </li>
        </ul>
        <t>Token-rate and invocation-rate controls are normally gateway-local controls.  They SHOULD be enforced at the Agent Gateway, model gateway, API gateway, or another application-layer enforcement point.</t>
        <t>Token-rate limits MUST NOT be automatically represented as packet-level network policies unless an explicit deployment-specific mapping is configured by the operator.</t>
        <t>Example:</t>
        <t><tt>
source-subject      = trial-agents
policy-class        = invocation-control
enforcement-scope   = gateway-local
request-rate-limit  = 100 requests per hour
token-rate-limit    = 100000 tokens per hour
exceed-action       = reject
</tt></t>
      </section>
      <section anchor="path-selection">
        <name>Path Selection</name>
        <t>Path Selection influences the path or service treatment used by traffic associated with a gateway-recognized policy matching attribute.</t>
        <t>Such policies MAY be expressed in terms of an individual agent, agent group, tenant, service level, or task class.  The applied policy state MAY refer to existing mechanisms such as routing policy, traffic engineering, Segment Routing policy, VPN service, private path, local breakout, or network slice.</t>
        <t>This document does not define path computation, forwarding behavior, or routing protocol extensions.  It specifies how a policy assignment is associated with path-selection enforcement state.</t>
        <t>Examples:</t>
        <t><tt>
source-subject    = high-priority-agents
policy-class      = path-selection
enforcement-scope = network
path-profile      = private-line
</tt></t>
        <t>and:</t>
        <t><tt>
source-subject    = low-priority-agents
policy-class      = path-selection
enforcement-scope = network
path-profile      = public-internet
</tt></t>
      </section>
    </section>
    <section anchor="supporting-management-models">
      <name>Supporting Management Models</name>
      <t>This section defines the three supporting management models.</t>
      <section anchor="subject-and-attachment-binding-model">
        <name>Subject and Attachment Binding Model</name>
        <t>The Subject and Attachment Binding model relates gateway-recognized policy matching attributes to gateway-local and network-visible selectors.</t>
        <section anchor="policy-subjects">
          <name>Policy Subjects</name>
          <t>A policy subject is a gateway-recognized policy matching attribute that identifies the entity or class of entities to which an Agent Gateway policy applies.  A policy subject does not establish a management relationship with the represented entity.</t>
          <t>A policy subject MAY represent:</t>
          <ul spacing="normal">
            <li>
              <t>an individual agent;</t>
            </li>
            <li>
              <t>an agent group;</t>
            </li>
            <li>
              <t>a tenant;</t>
            </li>
            <li>
              <t>an administrative domain;</t>
            </li>
            <li>
              <t>a task class;</t>
            </li>
            <li>
              <t>a service level; or</t>
            </li>
            <li>
              <t>another implementation-defined subject type.</t>
            </li>
          </ul>
          <t>A policy subject MUST have a locally unique subject identifier within the Agent Gateway policy control system.</t>
          <t>A policy subject SHOULD include a subject type.  The subject type indicates whether the subject represents an agent, agent group, tenant, administrative domain, task class, service level, or another implementation-defined type.</t>
          <t>This document does not define how an agent identifier is issued, authenticated, globally scoped, or resolved.  A deployment MAY obtain such information from identity systems, registries, DNS-based mechanisms, authorization systems, attestation systems, or gateway-local onboarding mechanisms.</t>
          <t>An implementation MUST NOT use an unauthenticated or unverified agent identifier as the sole basis for security-sensitive enforcement unless explicitly allowed by operator policy.</t>
        </section>
        <section anchor="agent-groups">
          <name>Agent Groups</name>
          <t>An agent group is a gateway-recognized policy matching attribute that represents multiple agents or other policy matching attributes.</t>
          <t>Agent group membership MAY be:</t>
          <ul spacing="normal">
            <li>
              <t>statically configured by the operator;</t>
            </li>
            <li>
              <t>learned from an external identity or inventory system;</t>
            </li>
            <li>
              <t>resolved dynamically by the Agent Gateway;</t>
            </li>
            <li>
              <t>derived from tenant, service-level, or task-class metadata; or</t>
            </li>
            <li>
              <t>implementation-specific.</t>
            </li>
          </ul>
          <t>When group membership is provided by an external system, the implementation SHOULD expose whether the membership state is configured, externally learned, dynamically resolved, or stale.</t>
          <t>Agent groups are used by interaction access-control policies, QoS policies, invocation-control policies, and path-selection policies.  Telemetry is a supporting management function that may be enabled for any supported core policy class.</t>
        </section>
        <section anchor="gateway-attachment-bindings">
          <name>Gateway Attachment Bindings</name>
          <t>A gateway attachment binding associates a gateway-recognized policy matching attribute with one or more selectors that can be used for gateway-local or network enforcement.</t>
          <t>A binding MAY include:</t>
          <ul spacing="normal">
            <li>
              <t>gateway identifier;</t>
            </li>
            <li>
              <t>gateway session identifier;</t>
            </li>
            <li>
              <t>ingress or egress interface;</t>
            </li>
            <li>
              <t>source or destination IP prefix;</t>
            </li>
            <li>
              <t>source or destination transport port;</t>
            </li>
            <li>
              <t>transport protocol;</t>
            </li>
            <li>
              <t>tunnel identifier;</t>
            </li>
            <li>
              <t>VPN instance;</t>
            </li>
            <li>
              <t>network slice;</t>
            </li>
            <li>
              <t>routing instance;</t>
            </li>
            <li>
              <t>DSCP value;</t>
            </li>
            <li>
              <t>IPv6 flow label; or</t>
            </li>
            <li>
              <t>another locally significant identifier.</t>
            </li>
          </ul>
          <t>A binding MAY be statically configured, dynamically learned, locally observed, or externally supplied. Dynamic bindings may be derived from authentication, session establishment, registration, metadata synchronization, controller state, service-mesh state, or local observation.</t>
          <t>A binding MUST have a validity context. The validity context MUST include enough information for an implementation to determine whether the binding is valid, stale, expired, or unverified.</t>
          <t>An implementation MUST NOT use an expired binding for active network enforcement unless the applied policy state is explicitly reported as stale, partially active, or failed.</t>
          <t>An implementation MUST NOT claim per-agent network enforcement unless the available selectors can distinguish the relevant agent from other agents sharing the same network-visible attributes.</t>
        </section>
      </section>
      <section anchor="applied-policy-state-and-telemetry-model">
        <name>Applied Policy State and Telemetry Model</name>
        <t>The Applied Policy State and Telemetry model records the effective result of applying a policy assignment through selected enforcement mechanisms.</t>
        <t>Applied policy state MUST identify:</t>
        <ul spacing="normal">
          <li>
            <t>the related policy assignment;</t>
          </li>
          <li>
            <t>the effective enforcement scope;</t>
          </li>
          <li>
            <t>the enforcement status; and</t>
          </li>
          <li>
            <t>the enforcement point or enforcement-point class.</t>
          </li>
        </ul>
        <t>Applied policy state SHOULD identify:</t>
        <ul spacing="normal">
          <li>
            <t>related gateway attachment bindings;</t>
          </li>
          <li>
            <t>referenced network policy object, when applicable;</t>
          </li>
          <li>
            <t>activation time;</t>
          </li>
          <li>
            <t>generation or version;</t>
          </li>
          <li>
            <t>failure reason, when applicable; and</t>
          </li>
          <li>
            <t>operational counters.</t>
          </li>
        </ul>
        <t>Applied policy state is not the same as the configured assignment. The assignment expresses operator intent. Applied policy state records what has actually been applied.</t>
        <t>An implementation MUST expose applied policy state indicating whether a policy assignment is pending, active, partially active, stale, failed, or withdrawn.</t>
        <t>Telemetry associated with applied policy state MAY include:</t>
        <ul spacing="normal">
          <li>
            <t>matched packets;</t>
          </li>
          <li>
            <t>matched bytes;</t>
          </li>
          <li>
            <t>permitted requests;</t>
          </li>
          <li>
            <t>denied requests;</t>
          </li>
          <li>
            <t>rate-limited requests;</t>
          </li>
          <li>
            <t>consumed tokens;</t>
          </li>
          <li>
            <t>active sessions;</t>
          </li>
          <li>
            <t>selected path;</t>
          </li>
          <li>
            <t>binding changes; and</t>
          </li>
          <li>
            <t>enforcement failures.</t>
          </li>
        </ul>
        <t>Counters SHOULD be associated with applied policy state rather than only with the original policy assignment. This enables the operator to determine which binding and enforcement point produced a measurement.</t>
      </section>
      <section anchor="policy-lifecycle-and-failure-handling-model">
        <name>Policy Lifecycle and Failure Handling Model</name>
        <t>The Policy Lifecycle and Failure Handling model defines how policies move from configuration to effective enforcement, and how failures are reported.</t>
        <section anchor="enforcement-status">
          <name>Enforcement Status</name>
          <t>The following enforcement status values are defined:</t>
          <ul spacing="normal">
            <li>
              <t>pending: the policy has been selected for enforcement but enforcement has not been confirmed;</t>
            </li>
            <li>
              <t>active: the policy has been successfully applied to the intended enforcement scope;</t>
            </li>
            <li>
              <t>active: the policy has been applied to some, but not all, required enforcement points or bindings;</t>
            </li>
            <li>
              <t>stale: the policy depends on attachment binding information that is no longer current;</t>
            </li>
            <li>
              <t>failed: the policy could not be applied; and</t>
            </li>
            <li>
              <t>withdrawn: the policy has been removed or deactivated.</t>
            </li>
          </ul>
          <t>An implementation MUST maintain enforcement status for each applied policy.</t>
          <t>An implementation SHOULD update enforcement status when the corresponding assignment, binding, enforcement point, or referenced policy object changes.</t>
        </section>
        <section anchor="failure-reasons">
          <name>Failure Reasons</name>
          <t>When policy enforcement fails, the implementation MUST expose a failure reason.</t>
          <t>The failure reason MUST allow the operator to distinguish at least the following categories:</t>
          <ul spacing="normal">
            <li>
              <t>subject-resolution failure;</t>
            </li>
            <li>
              <t>binding unavailable;</t>
            </li>
            <li>
              <t>binding expired;</t>
            </li>
            <li>
              <t>unsupported selector;</t>
            </li>
            <li>
              <t>referenced policy missing;</t>
            </li>
            <li>
              <t>enforcement-point unreachable;</t>
            </li>
            <li>
              <t>policy programming failure;</t>
            </li>
            <li>
              <t>policy conflict; and</t>
            </li>
            <li>
              <t>unsupported capability.</t>
            </li>
          </ul>
        </section>
        <section anchor="conflict-handling">
          <name>Conflict Handling</name>
          <t>Conflicts may occur when multiple policy assignments apply to the same subject or enforcement scope.</t>
          <t>An implementation MUST apply a deterministic conflict resolution procedure. The procedure MAY be based on precedence, policy class, administrative state, validity period, or implementation-defined local policy.</t>
          <t>The selected result SHOULD be visible in operational state.</t>
        </section>
        <section anchor="binding-change-handling">
          <name>Binding Change Handling</name>
          <t>When a binding changes, the corresponding applied policy state may need to be updated.</t>
          <t>An implementation SHOULD support the following sequence:</t>
          <ol spacing="normal" type="1"><li>
              <t>derive the new effective binding;</t>
            </li>
            <li>
              <t>create or update the corresponding enforcement instance;</t>
            </li>
            <li>
              <t>verify activation of the new enforcement state;</t>
            </li>
            <li>
              <t>withdraw stale enforcement state; and</t>
            </li>
            <li>
              <t>record any failure or partial enforcement.</t>
            </li>
          </ol>
          <t>For access-control and isolation policies, fail-closed behavior SHOULD be supported when a required binding is unavailable or stale. For resource-control or observation policies, degraded or best-effort behavior MAY be acceptable according to operator policy.</t>
        </section>
      </section>
    </section>
    <section anchor="policy-profiles-and-assignments">
      <name>Policy Profiles and Assignments</name>
      <t>A policy profile is a reusable operator-defined policy object.  It describes the requested enforcement scope and exactly one core policy parameter set.</t>
      <t>A policy profile MUST contain exactly one core policy parameter set.  The selected parameter set determines whether the profile represents Interaction Access Control, QoS and Flow Control, Invocation and Token Control, or Path Selection.</t>
      <t>A policy profile MUST identify a requested enforcement scope.  The requested enforcement scope is one of:</t>
      <ul spacing="normal">
        <li>
          <t>gateway-local;</t>
        </li>
        <li>
          <t>network; or</t>
        </li>
        <li>
          <t>gateway-and-network.</t>
        </li>
      </ul>
      <t>A policy profile MAY include telemetry options that apply to the selected core policy class.  Telemetry and accounting are supporting management functions; they are not an additional core policy class.</t>
      <t>A policy profile MAY reference existing network policy objects, such as ACLs, QoS policies, routing policies, VPN services, traffic-engineering policies, Segment Routing policies, or network-slice profiles.  This document does not change the semantics of such referenced objects.</t>
      <t>A policy assignment associates a policy profile with a source policy subject and, when applicable, a destination policy subject.</t>
      <t>A policy assignment MAY include:</t>
      <ul spacing="normal">
        <li>
          <t>assignment identifier;</t>
        </li>
        <li>
          <t>source subject;</t>
        </li>
        <li>
          <t>destination subject;</t>
        </li>
        <li>
          <t>policy profile;</t>
        </li>
        <li>
          <t>precedence;</t>
        </li>
        <li>
          <t>administrative state;</t>
        </li>
        <li>
          <t>validity period; and</t>
        </li>
        <li>
          <t>conflict-handling behavior.</t>
        </li>
      </ul>
      <t>A policy assignment is expressed at the gateway-recognized abstraction level.  It does not need to contain the current IP address, port, tunnel, interface, network slice, or gateway session of the subject.</t>
      <t>A policy assignment MUST reference a valid policy subject.</t>
      <t>A policy assignment MUST reference a valid policy profile.</t>
      <t>When a destination subject is present, the assignment applies to interactions from the source subject to the destination subject.  This is commonly used for interaction access-control policies.</t>
    </section>
    <section anchor="enforcement-selection-and-mapping">
      <name>Enforcement Selection and Mapping</name>
      <t>Enforcement selection determines whether a policy assignment is applied through gateway-local enforcement, network enforcement, or both.</t>
      <t>Enforcement selection MAY depend on:</t>
      <ul spacing="normal">
        <li>
          <t>policy class;</t>
        </li>
        <li>
          <t>requested enforcement scope;</t>
        </li>
        <li>
          <t>available gateway attachment bindings;</t>
        </li>
        <li>
          <t>selector availability;</t>
        </li>
        <li>
          <t>enforcement-point capabilities;</t>
        </li>
        <li>
          <t>trust in the binding;</t>
        </li>
        <li>
          <t>required enforcement granularity;</t>
        </li>
        <li>
          <t>operator configuration; and</t>
        </li>
        <li>
          <t>local policy.</t>
        </li>
      </ul>
      <t>An implementation MUST distinguish gateway-local enforcement from network enforcement in applied policy state.</t>
      <t>If the requested enforcement scope cannot be satisfied, the implementation MUST NOT report the policy as active for that scope. The implementation MAY report the applied policy state as pending, partially active, stale, or failed, depending on the failure condition.</t>
      <t>If network enforcement is not possible but gateway-local enforcement is possible, the implementation MAY apply the policy at the gateway and report the effective enforcement scope accordingly.</t>
      <section anchor="mapping-agent-policies-to-network-policies">
        <name>Mapping Agent Policies to Network Policies</name>
        <t>When network enforcement is selected, the policy control component maps agent-related policy assignments to network selectors derived from gateway attachment bindings.</t>
        <t>For example:</t>
        <t>```
Operator policy:
  Limit Agent A to 10 Mbit/s.</t>
        <t>Resolved binding:
  agent-id           = agent-a
  gateway-session-id = session-123
  source-prefix      = 192.0.2.18/32
  source-port        = 45020
  interface          = access-interface-17</t>
        <t>Network enforcement:
  Apply traffic policy rate-limit-10m to traffic matching the
  resolved selectors.
```</t>
        <t>The mapping is dynamic and deployment-specific. This document defines the management model for representing the binding and applied state; it does not define a new network policy language.</t>
      </section>
      <section anchor="gateway-local-enforcement">
        <name>Gateway-Local Enforcement</name>
        <t>Gateway-local enforcement is appropriate when the policy depends on information that is visible at the gateway but not visible at the network layer.</t>
        <t>Examples include:</t>
        <ul spacing="normal">
          <li>
            <t>authenticated agent session;</t>
          </li>
          <li>
            <t>agent-to-agent invocation context;</t>
          </li>
          <li>
            <t>tool or model invocation context;</t>
          </li>
          <li>
            <t>request counters;</t>
          </li>
          <li>
            <t>token counters;</t>
          </li>
          <li>
            <t>concurrent invocation counts; and</t>
          </li>
          <li>
            <t>application-layer access-control decisions.</t>
          </li>
        </ul>
        <t>Application-layer controls such as request-rate limits, token-rate limits, and concurrent invocation limits SHOULD be enforced at an Agent Gateway or application-layer enforcement point.</t>
      </section>
      <section anchor="network-enforcement">
        <name>Network Enforcement</name>
        <t>Network enforcement is appropriate when the policy can be expressed using selectors and enforcement capabilities supported by a network enforcement point.</t>
        <t>Examples include:</t>
        <ul spacing="normal">
          <li>
            <t>ACLs;</t>
          </li>
          <li>
            <t>QoS policies;</t>
          </li>
          <li>
            <t>flow-control policies;</t>
          </li>
          <li>
            <t>routing policies;</t>
          </li>
          <li>
            <t>traffic-engineering policies;</t>
          </li>
          <li>
            <t>VPN steering; and</t>
          </li>
          <li>
            <t>network-slice selection.</t>
          </li>
        </ul>
        <t>When a policy is applied through network enforcement, the applied policy state SHOULD identify the referenced network policy object, enforcement point, and related bindings.</t>
        <t>This document does not redefine the semantics of any referenced network policy object.</t>
      </section>
    </section>
    <section anchor="relationship-to-existing-mechanisms">
      <name>Relationship to Existing Mechanisms</name>
      <t>This document complements Agent Gateway architecture and agent-aware networking work. Agent Gateway architecture documents describe gateway functions such as discovery, protocol mediation, routing, security, model access, tool access, and network connectivity. This document focuses on the policy control model that allows operator-defined agent-related policies to be resolved into current gateway attachments, selected for gateway-local or network enforcement, and exposed as applied policy state.</t>
      <t>This document does not replace existing network policy models. Existing ACL, QoS, routing, VPN, traffic-engineering, and network-slice models define technology-specific policy semantics. The model in this document defines the Agent Gateway policy layer that binds agent-related policy subjects to those enforcement mechanisms.</t>
      <t>This document also does not define how agents themselves are operated or governed. It assumes that an operator-managed gateway can mediate and control interactions that pass through it.</t>
    </section>
    <section anchor="management-data-model">
      <name>Management Data Model</name>
      <t>This document defines management data for Agent Gateway policy control. The management model includes configuration data, operational state, and notifications.</t>
      <t>The managed objects are:</t>
      <ul spacing="normal">
        <li>
          <t>policy subjects;</t>
        </li>
        <li>
          <t>agent groups;</t>
        </li>
        <li>
          <t>static attachment bindings;</t>
        </li>
        <li>
          <t>policy profiles;</t>
        </li>
        <li>
          <t>policy assignments;</t>
        </li>
        <li>
          <t>effective attachment bindings;</t>
        </li>
        <li>
          <t>applied policies;</t>
        </li>
        <li>
          <t>operational counters;</t>
        </li>
        <li>
          <t>failure state; and</t>
        </li>
        <li>
          <t>notifications.</t>
        </li>
      </ul>
      <t>The YANG module in (#yang-module) provides the normative data model for these objects.</t>
      <section anchor="configuration-data">
        <name>Configuration Data</name>
        <t>Configuration data includes:</t>
        <ul spacing="normal">
          <li>
            <t>policy subjects;</t>
          </li>
          <li>
            <t>agent group membership;</t>
          </li>
          <li>
            <t>static gateway attachment bindings;</t>
          </li>
          <li>
            <t>policy profiles; and</t>
          </li>
          <li>
            <t>policy assignments.</t>
          </li>
        </ul>
        <t>A policy subject configuration identifies the gateway-recognized policy matching attribute to which policies can apply.</t>
        <t>A static attachment binding configuration associates a subject with selectors known by the operator.</t>
        <t>A policy profile configuration defines reusable policy parameters and, when applicable, references to existing gateway-local or network policy objects.</t>
        <t>A policy assignment configuration associates a policy profile with a source matching attribute and, optionally, a destination matching attribute.</t>
      </section>
      <section anchor="operational-state">
        <name>Operational State</name>
        <t>Operational state includes:</t>
        <ul spacing="normal">
          <li>
            <t>effective attachment bindings;</t>
          </li>
          <li>
            <t>applied policies;</t>
          </li>
          <li>
            <t>enforcement status;</t>
          </li>
          <li>
            <t>failure reasons;</t>
          </li>
          <li>
            <t>operational counters; and</t>
          </li>
          <li>
            <t>last update timestamps.</t>
          </li>
        </ul>
        <t>Operational state MUST allow an operator to determine whether a configured assignment has actually been applied.</t>
      </section>
      <section anchor="notifications">
        <name>Notifications</name>
        <t>The management model defines notifications for significant changes in policy state.</t>
        <t>An implementation SHOULD support notifications for binding changes, policy enforcement failures, quota threshold crossing, and policy status changes when the corresponding functions are implemented.</t>
      </section>
    </section>
    <section anchor="yang-module">
      <name>YANG Module</name>
      <t>This section defines the YANG module for Agent Gateway policy control.</t>
      <t>The tree diagram follows the notation defined in <xref target="RFC8340"/>.</t>
      <section anchor="tree-diagram">
        <name>Tree Diagram</name>
        <t>```
module: ietf-agent-gateway-policy</t>
        <t>+--rw agent-gateway-policy
     +--rw policy-subjects
     |  +--rw subject* [subject-id]
     |     +--rw subject-id                 string
     |     +--rw subject-type               identityref
     |     +--rw tenant-id?                 string
     |     +--rw administrative-domain?     string
     |     +--rw service-level?             string
     |     +--rw task-class?                string
     |     +--rw enabled?                   boolean
     |     +--rw description?               string
     |
     +--rw agent-groups
     |  +--rw group* [group-id]
     |     +--rw group-id                   -&gt; /policy-subjects/subject/subject-id
     |     +--rw member-subject*            -&gt; /policy-subjects/subject/subject-id
     |     +--rw membership-origin?         identityref
     |     +--rw description?               string
     |
     +--rw static-bindings
     |  +--rw binding* [binding-id]
     |     +--rw binding-id                 string
     |     +--rw subject-id                 -&gt; /policy-subjects/subject/subject-id
     |     +--rw selectors
     |     |  +--rw gateway-id?             string
     |     |  +--rw gateway-session-id?     string
     |     |  +--rw interface?              string
     |     |  +--rw source-prefix*          inet:ip-prefix
     |     |  +--rw destination-prefix*     inet:ip-prefix
     |     |  +--rw transport-protocol?     uint8
     |     |  +--rw source-port?            inet:port-number
     |     |  +--rw destination-port?       inet:port-number
     |     |  +--rw tunnel-id?              string
     |     |  +--rw network-instance?       string
     |     |  +--rw slice-id?               string
     |     |  +--rw flow-label?             uint32
     |     |  +--rw dscp?                   uint8
     |     +--rw valid-until?               yang:date-and-time
     |
     +--rw policy-profiles
     |  +--rw profile* [profile-id]
     |     +--rw profile-id                 string
     |     +--rw enforcement-scope          identityref
     |     +--rw precedence?                uint32
     |     +--rw (core-policy-parameters)?
     |     |  +--:(interaction-access-control)
     |     |  |  +--rw access-control
     |     |  |     +--rw default-action?   identityref
     |     |  |     +--rw rule* [rule-id]
     |     |  |        +--rw rule-id        string
     |     |  |        +--rw source-subject-id? -&gt; /policy-subjects/subject/subject-id
     |     |  |        +--rw destination-subject-id? -&gt; /policy-subjects/subject/subject-id
     |     |  |        +--rw action         identityref
     |     |  +--:(qos-flow-control)
     |     |  |  +--rw flow-control
     |     |  |     +--rw bandwidth-limit-kbps?  uint64
     |     |  |     +--rw packet-rate-limit-pps? uint64
     |     |  |     +--rw burst-size-bytes?      uint64
     |     |  |     +--rw dscp?                  uint8
     |     |  |     +--rw referenced-qos-policy? instance-identifier
     |     |  +--:(invocation-token-control)
     |     |  |  +--rw invocation-control
     |     |  |     +--rw request-rate-limit? uint64
     |     |  |     +--rw token-rate-limit?   uint64
     |     |  |     +--rw concurrent-limit?   uint32
     |     |  |     +--rw interval?           uint32
     |     |  |     +--rw exceed-action?      identityref
     |     |  +--:(path-selection)
     |     |     +--rw path-selection
     |     |        +--rw path-profile-id?     string
     |     |        +--rw preferred-path-type? identityref
     |     |        +--rw routing-policy?      instance-identifier
     |     |        +--rw network-instance?    string
     |     |        +--rw slice-id?            string
     |     +--rw telemetry-options
     |     |  +--rw enable-packet-counters? boolean
     |     |  +--rw enable-request-counters? boolean
     |     |  +--rw enable-token-counters?  boolean
     |     +--rw description?               string
     |
     +--rw policy-assignments
     |  +--rw assignment* [assignment-id]
     |     +--rw assignment-id              string
     |     +--rw source-subject-id          -&gt; /policy-subjects/subject/subject-id
     |     +--rw destination-subject-id?    -&gt; /policy-subjects/subject/subject-id
     |     +--rw profile-id                 -&gt; /policy-profiles/profile/profile-id
     |     +--rw enabled?                   boolean
     |     +--rw valid-from?                yang:date-and-time
     |     +--rw valid-until?               yang:date-and-time
     |
     +--ro effective-bindings
     |  +--ro binding* [binding-id]
     |     +--ro binding-id                 string
     |     +--ro subject-id                 string
     |     +--ro selectors
     |     +--ro origin                     identityref
     |     +--ro verification-state         identityref
     |     +--ro evidence-ref?              string
     |     +--ro created-at?                yang:date-and-time
     |     +--ro last-refreshed-at?         yang:date-and-time
     |     +--ro expires-at?                yang:date-and-time
     |
     +--ro applied-policies
     |  +--ro applied-policy* [applied-policy-id]
     |     +--ro applied-policy-id          string
     |     +--ro assignment-id              string
     |     +--ro binding-id*                string
     |     +--ro effective-enforcement-scope identityref
     |     +--ro enforcement-point-id?      string
     |     +--ro enforcement-point-type?    string
     |     +--ro referenced-policy?         instance-identifier
     |     +--ro enforcement-status         identityref
     |     +--ro generation?                uint64
     |     +--ro activated-at?              yang:date-and-time
     |     +--ro last-updated-at?           yang:date-and-time
     |     +--ro failure-reason?            identityref
     |     +--ro failure-description?       string
     |     +--ro statistics
     |        +--ro matched-packets?        yang:counter64
     |        +--ro matched-bytes?          yang:counter64
     |        +--ro permitted-requests?     yang:counter64
     |        +--ro denied-requests?        yang:counter64
     |        +--ro rate-limited-requests?  yang:counter64
     |        +--ro consumed-tokens?        yang:counter64
     |
     +---n binding-changed
     +---n policy-status-changed
     +---n policy-enforcement-failed
     +---n quota-threshold-crossed
```</t>
      </section>
      <section anchor="yang-module-definition">
        <name>YANG Module Definition</name>
        <t>```
module ietf-agent-gateway-policy {
  yang-version 1.1;
  namespace
    "urn:ietf:params:xml:ns:yang:ietf-agent-gateway-policy";
  prefix agp;</t>
        <t>import ietf-yang-types {
    prefix yang;
    reference
      "RFC 6991: Common YANG Data Types";
  }</t>
        <t>import ietf-inet-types {
    prefix inet;
    reference
      "RFC 6991: Common YANG Data Types";
  }</t>
        <t>organization
    "IETF Operations and Management Area Working Group";</t>
        <t>contact
    "WG Web:   <eref target="https://datatracker.ietf.org/wg/opsawg/">https://datatracker.ietf.org/wg/opsawg/</eref>
     WG List:  <eref target="mailto:opsawg@ietf.org">opsawg@ietf.org</eref>";</t>
        <t>description
    "This module defines an operator-facing management model for
     Agent Gateway policy control.</t>
        <artwork><![CDATA[
 The model controls and observes interactions mediated by an
 operator-managed Agent Gateway.  Agent identifiers, agent
 groups, tenants, service levels, and task classes are
 gateway-recognized policy matching attributes; they do not
 establish a management relationship with an agent.

 The model is organized around four core policy classes and
 three supporting management models.  The four core policy
 classes are interaction access control, QoS and flow control,
 invocation and token control, and path selection.  The
 supporting management models are subject and attachment
 binding, applied policy state and telemetry, and policy
 lifecycle and failure handling.

 This module does not define governance or control of an
 agent's internal behavior, lifecycle, reasoning, planning,
 prompt construction, memory, tool selection, or runtime
 implementation.";
]]></artwork>
        <t>revision 2026-07-06 {
    description
      "Initial revision.";
    reference
      "RFC XXXX: Agent Gateway Policy Control Model";
  }</t>
        <t>/*
   * Identities
   */</t>
        <t>identity subject-type-base {
    description
      "Base identity for policy subject types.";
  }</t>
        <t>identity subject-agent {
    base subject-type-base;
    description
      "A policy subject representing an individual agent.";
  }</t>
        <t>identity subject-agent-group {
    base subject-type-base;
    description
      "A policy subject representing a group of agents.";
  }</t>
        <t>identity subject-tenant {
    base subject-type-base;
    description
      "A policy subject representing a tenant.";
  }</t>
        <t>identity subject-administrative-domain {
    base subject-type-base;
    description
      "A policy subject representing an administrative domain.";
  }</t>
        <t>identity subject-task-class {
    base subject-type-base;
    description
      "A policy subject representing a task class.";
  }</t>
        <t>identity subject-service-level {
    base subject-type-base;
    description
      "A policy subject representing a service level.";
  }</t>
        <t>identity membership-origin-base {
    description
      "Base identity for agent group membership origin.";
  }</t>
        <t>identity membership-configured {
    base membership-origin-base;
    description
      "Group membership is configured locally.";
  }</t>
        <t>identity membership-external {
    base membership-origin-base;
    description
      "Group membership is supplied by an external system.";
  }</t>
        <t>identity membership-dynamic {
    base membership-origin-base;
    description
      "Group membership is dynamically resolved.";
  }</t>
        <t>identity enforcement-scope-base {
    description
      "Base identity for enforcement scope.";
  }</t>
        <t>identity scope-gateway-local {
    base enforcement-scope-base;
    description
      "Enforcement performed at the Agent Gateway or a related
       application-layer enforcement point.";
  }</t>
        <t>identity scope-network {
    base enforcement-scope-base;
    description
      "Enforcement performed through network mechanisms.";
  }</t>
        <t>identity scope-gateway-and-network {
    base enforcement-scope-base;
    description
      "Enforcement performed both at the gateway and through
       network mechanisms.";
  }</t>
        <t>identity policy-action-base {
    description
      "Base identity for policy actions.";
  }</t>
        <t>identity action-permit {
    base policy-action-base;
    description
      "Permit the interaction or traffic.";
  }</t>
        <t>identity action-deny {
    base policy-action-base;
    description
      "Deny the interaction or traffic.";
  }</t>
        <t>identity action-reject {
    base policy-action-base;
    description
      "Reject the request or interaction.";
  }</t>
        <t>identity action-degrade {
    base policy-action-base;
    description
      "Apply degraded treatment.";
  }</t>
        <t>identity action-queue {
    base policy-action-base;
    description
      "Queue the request or interaction.";
  }</t>
        <t>identity action-notify-only {
    base policy-action-base;
    description
      "Generate notification but do not block.";
  }</t>
        <t>identity action-terminate-session {
    base policy-action-base;
    description
      "Terminate the related session.";
  }</t>
        <t>identity preferred-path-type-base {
    description
      "Base identity for preferred path type.";
  }</t>
        <t>identity path-private {
    base preferred-path-type-base;
    description
      "Prefer a private or dedicated path.";
  }</t>
        <t>identity path-public-internet {
    base preferred-path-type-base;
    description
      "Prefer public Internet access.";
  }</t>
        <t>identity path-low-latency {
    base preferred-path-type-base;
    description
      "Prefer a low-latency path.";
  }</t>
        <t>identity path-low-cost {
    base preferred-path-type-base;
    description
      "Prefer a low-cost path.";
  }</t>
        <t>identity binding-origin-base {
    description
      "Base identity for the origin of an attachment binding.";
  }</t>
        <t>identity binding-configured {
    base binding-origin-base;
    description
      "The binding is statically configured.";
  }</t>
        <t>identity binding-learned {
    base binding-origin-base;
    description
      "The binding is dynamically learned.";
  }</t>
        <t>identity binding-observed {
    base binding-origin-base;
    description
      "The binding is locally observed by the Agent Gateway.";
  }</t>
        <t>identity binding-external {
    base binding-origin-base;
    description
      "The binding is supplied by an external system.";
  }</t>
        <t>identity verification-state-base {
    description
      "Base identity for binding verification state.";
  }</t>
        <t>identity verify-verified {
    base verification-state-base;
    description
      "The binding has been verified.";
  }</t>
        <t>identity verify-unverified {
    base verification-state-base;
    description
      "The binding has not been verified.";
  }</t>
        <t>identity verify-stale {
    base verification-state-base;
    description
      "The binding is stale.";
  }</t>
        <t>identity verify-expired {
    base verification-state-base;
    description
      "The binding has expired.";
  }</t>
        <t>identity enforcement-status-base {
    description
      "Base identity for enforcement status.";
  }</t>
        <t>identity status-pending {
    base enforcement-status-base;
    description
      "The policy has been selected for enforcement but enforcement
       has not been confirmed.";
  }</t>
        <t>identity status-active {
    base enforcement-status-base;
    description
      "The policy has been successfully applied.";
  }</t>
        <t>identity status-partially-active {
    base enforcement-status-base;
    description
      "The policy has been partially applied.";
  }</t>
        <t>identity status-stale {
    base enforcement-status-base;
    description
      "The applied policy depends on stale binding information.";
  }</t>
        <t>identity status-failed {
    base enforcement-status-base;
    description
      "Policy enforcement has failed.";
  }</t>
        <t>identity status-withdrawn {
    base enforcement-status-base;
    description
      "The applied policy has been withdrawn.";
  }</t>
        <t>identity failure-reason-base {
    description
      "Base identity for enforcement failure reasons.";
  }</t>
        <t>identity fail-subject-unresolved {
    base failure-reason-base;
    description
      "The policy subject could not be resolved.";
  }</t>
        <t>identity fail-binding-unavailable {
    base failure-reason-base;
    description
      "A required binding is unavailable.";
  }</t>
        <t>identity fail-binding-expired {
    base failure-reason-base;
    description
      "A required binding has expired.";
  }</t>
        <t>identity fail-unsupported-selector {
    base failure-reason-base;
    description
      "A required selector is not supported by the enforcement point.";
  }</t>
        <t>identity fail-referenced-policy-missing {
    base failure-reason-base;
    description
      "A referenced policy object is missing.";
  }</t>
        <t>identity fail-enforcement-point-unreachable {
    base failure-reason-base;
    description
      "The enforcement point cannot be reached.";
  }</t>
        <t>identity fail-policy-programming-failed {
    base failure-reason-base;
    description
      "Programming the enforcement point failed.";
  }</t>
        <t>identity fail-policy-conflict {
    base failure-reason-base;
    description
      "The policy conflicts with another policy.";
  }</t>
        <t>identity fail-capability-unsupported {
    base failure-reason-base;
    description
      "A required capability is not supported.";
  }</t>
        <t>/*
   * Groupings
   */</t>
        <t>grouping selector-set {
    description
      "A set of gateway or network selectors that may be used for
       policy enforcement.";</t>
        <artwork><![CDATA[
leaf gateway-id {
  type string;
  description
    "Agent Gateway identifier.";
}

leaf gateway-session-id {
  type string;
  description
    "Gateway session identifier.";
}

leaf interface {
  type string;
  description
    "A locally significant interface identifier.";
}

leaf-list source-prefix {
  type inet:ip-prefix;
  description
    "Source IP prefixes associated with the binding.";
}

leaf-list destination-prefix {
  type inet:ip-prefix;
  description
    "Destination IP prefixes associated with the binding.";
}

leaf transport-protocol {
  type uint8;
  description
    "IP transport protocol number.";
}

leaf source-port {
  type inet:port-number;
  description
    "Source transport port.";
}

leaf destination-port {
  type inet:port-number;
  description
    "Destination transport port.";
}

leaf tunnel-id {
  type string;
  description
    "A locally significant tunnel identifier.";
}

leaf network-instance {
  type string;
  description
    "A locally significant network instance, routing instance,
     or VPN identifier.";
}

leaf slice-id {
  type string;
  description
    "A locally significant network slice identifier.";
}

leaf flow-label {
  type uint32 {
    range "0..1048575";
  }
  description
    "IPv6 flow label value.";
}

leaf dscp {
  type uint8 {
    range "0..63";
  }
  description
    "DSCP value.";
}   }
]]></artwork>
        <t>grouping access-control-parameters {
    description
      "Gateway-mediated interaction access-control policy parameters.";</t>
        <artwork><![CDATA[
leaf default-action {
  type identityref {
    base policy-action-base;
  }
  default "action-deny";
  description
    "Default action for the access-control profile.";
}

list rule {
  key "rule-id";
  description
    "Access-control rule.";

  leaf rule-id {
    type string;
    description
      "Rule identifier.";
  }

  leaf source-subject-id {
    type leafref {
      path "/agp:agent-gateway-policy/agp:policy-subjects"
         + "/agp:subject/agp:subject-id";
      require-instance false;
    }
    description
      "Optional source gateway-recognized policy matching
       attribute for the rule.";
  }

  leaf destination-subject-id {
    type leafref {
      path "/agp:agent-gateway-policy/agp:policy-subjects"
         + "/agp:subject/agp:subject-id";
      require-instance false;
    }
    description
      "Optional destination gateway-recognized policy matching
       attribute for the rule.";
  }

  leaf action {
    type identityref {
      base policy-action-base;
    }
    mandatory true;
    description
      "Rule action.";
  }
}   }
]]></artwork>
        <t>grouping flow-control-parameters {
    description
      "QoS and flow-control policy parameters.";</t>
        <artwork><![CDATA[
leaf bandwidth-limit-kbps {
  type uint64;
  units "kilobits per second";
  description
    "Bandwidth limit.";
}

leaf packet-rate-limit-pps {
  type uint64;
  units "packets per second";
  description
    "Packet-rate limit.";
}

leaf burst-size-bytes {
  type uint64;
  units "bytes";
  description
    "Burst size.";
}

leaf dscp {
  type uint8 {
    range "0..63";
  }
  description
    "DSCP value to mark or match.";
}

leaf referenced-qos-policy {
  type instance-identifier {
    require-instance false;
  }
  description
    "Reference to an existing QoS or traffic policy object.";
}   }
]]></artwork>
        <t>grouping invocation-control-parameters {
    description
      "Gateway-local invocation and token control parameters.";</t>
        <artwork><![CDATA[
leaf request-rate-limit {
  type uint64;
  description
    "Maximum number of requests in the measurement interval.";
}

leaf token-rate-limit {
  type uint64;
  description
    "Maximum number of model tokens in the measurement interval.";
}

leaf concurrent-limit {
  type uint32;
  description
    "Maximum number of concurrent invocations or sessions.";
}

leaf interval {
  type uint32;
  units "seconds";
  description
    "Measurement interval.";
}

leaf exceed-action {
  type identityref {
    base policy-action-base;
  }
  description
    "Action when the limit is exceeded.";
}   }
]]></artwork>
        <t>grouping path-selection-parameters {
    description
      "Path-selection policy parameters.";</t>
        <artwork><![CDATA[
leaf path-profile-id {
  type string;
  description
    "Identifier of a locally defined path profile.";
}

leaf preferred-path-type {
  type identityref {
    base preferred-path-type-base;
  }
  description
    "Preferred path type.";
}

leaf routing-policy {
  type instance-identifier {
    require-instance false;
  }
  description
    "Reference to an existing routing or traffic-engineering
     policy object.";
}

leaf network-instance {
  type string;
  description
    "Network instance, routing instance, or VPN to use.";
}

leaf slice-id {
  type string;
  description
    "Network slice identifier.";
}   }
]]></artwork>
        <t>grouping telemetry-options {
    description
      "Telemetry options that apply to the selected core policy
       class.  Telemetry and accounting are supporting management
       functions, not an additional core policy class.";</t>
        <artwork><![CDATA[
leaf enable-packet-counters {
  type boolean;
  default "false";
  description
    "Enable packet and byte counters when available.";
}

leaf enable-request-counters {
  type boolean;
  default "false";
  description
    "Enable request counters when available.";
}

leaf enable-token-counters {
  type boolean;
  default "false";
  description
    "Enable token counters when available.";
}   }
]]></artwork>
        <t>grouping applied-policy-statistics {
    description
      "Operational counters associated with an applied policy.";</t>
        <artwork><![CDATA[
leaf matched-packets {
  type yang:counter64;
  description
    "Number of packets matched by the applied policy.";
}

leaf matched-bytes {
  type yang:counter64;
  description
    "Number of bytes matched by the applied policy.";
}

leaf permitted-requests {
  type yang:counter64;
  description
    "Number of permitted requests.";
}

leaf denied-requests {
  type yang:counter64;
  description
    "Number of denied requests.";
}

leaf rate-limited-requests {
  type yang:counter64;
  description
    "Number of rate-limited requests.";
}

leaf consumed-tokens {
  type yang:counter64;
  description
    "Number of consumed model tokens.";
}   }
]]></artwork>
        <t>/*
   * Data nodes
   */</t>
        <t>container agent-gateway-policy {
    description
      "Top-level container for operator-facing Agent Gateway policy
       control.";</t>
        <artwork><![CDATA[
container policy-subjects {
  description
    "Configured gateway-recognized policy matching attributes.";

  list subject {
    key "subject-id";
    description
      "A gateway-recognized policy matching attribute.";

    leaf subject-id {
      type string;
      description
        "Locally unique identifier for a gateway-recognized
         policy matching attribute.";
    }

    leaf subject-type {
      type identityref {
        base subject-type-base;
      }
      mandatory true;
      description
        "Type of the policy matching attribute.";
    }

    leaf tenant-id {
      type string;
      description
        "Tenant identifier associated with the subject.";
    }

    leaf administrative-domain {
      type string;
      description
        "Administrative domain associated with the subject.";
    }

    leaf service-level {
      type string;
      description
        "Service level associated with the subject.";
    }

    leaf task-class {
      type string;
      description
        "Task class associated with the subject.";
    }

    leaf enabled {
      type boolean;
      default "true";
      description
        "Administrative state of the subject.";
    }

    leaf description {
      type string;
      description
        "Textual description of the subject.";
    }
  }
}

container agent-groups {
  description
    "Configured or learned agent groups.";

  list group {
    key "group-id";
    description
      "An agent group.";

    leaf group-id {
      type leafref {
        path "/agp:agent-gateway-policy/agp:policy-subjects"
           + "/agp:subject/agp:subject-id";
      }
      description
        "Identifier of the policy subject that represents this
         agent group.";
    }

    leaf-list member-subject {
      type leafref {
        path "/agp:agent-gateway-policy/agp:policy-subjects"
           + "/agp:subject/agp:subject-id";
      }
      description
        "Member gateway-recognized policy matching attributes.";
    }

    leaf membership-origin {
      type identityref {
        base membership-origin-base;
      }
      default "membership-configured";
      description
        "Origin of the group membership.";
    }

    leaf description {
      type string;
      description
        "Textual description of the group.";
    }
  }
}

container static-bindings {
  description
    "Statically configured gateway attachment bindings.";

  list binding {
    key "binding-id";
    description
      "A static gateway attachment binding.";

    leaf binding-id {
      type string;
      description
        "Binding identifier.";
    }

    leaf subject-id {
      type leafref {
        path "/agp:agent-gateway-policy/agp:policy-subjects"
           + "/agp:subject/agp:subject-id";
      }
      mandatory true;
      description
        "Policy matching attribute associated with the binding.";
    }

    container selectors {
      description
        "Selectors associated with the binding.";
      uses selector-set;
    }

    leaf valid-until {
      type yang:date-and-time;
      description
        "Time until which the binding is valid.";
    }
  }
}

container policy-profiles {
  description
    "Configured policy profiles.";

  list profile {
    key "profile-id";
    description
      "A reusable policy profile.";

    leaf profile-id {
      type string;
      description
        "Policy profile identifier.";
    }

    leaf enforcement-scope {
      type identityref {
        base enforcement-scope-base;
      }
      mandatory true;
      description
        "Requested enforcement scope.";
    }

    leaf precedence {
      type uint32;
      default "0";
      description
        "Policy precedence.  Higher values indicate higher
         precedence.";
    }

    choice core-policy-parameters {
      mandatory true;
      description
        "Selects exactly one core policy class and its
         parameters.";

      case interaction-access-control {
        container access-control {
          description
            "Gateway-mediated interaction access-control
             parameters.";
          uses access-control-parameters;
        }
      }

      case qos-flow-control {
        container flow-control {
          description
            "QoS and flow-control parameters.";
          uses flow-control-parameters;
        }
      }

      case invocation-token-control {
        container invocation-control {
          description
            "Gateway-local invocation and token-control
             parameters.";
          uses invocation-control-parameters;
        }
      }

      case path-selection {
        container path-selection {
          description
            "Path-selection parameters.";
          uses path-selection-parameters;
        }
      }
    }

    container telemetry-options {
      description
        "Telemetry options for the selected core policy class.";
      uses telemetry-options;
    }

    leaf description {
      type string;
      description
        "Textual description of the policy profile.";
    }
  }
}

container policy-assignments {
  description
    "Configured policy assignments.";

  list assignment {
    key "assignment-id";
    description
      "A policy assignment.";

    leaf assignment-id {
      type string;
      description
        "Policy assignment identifier.";
    }

    leaf source-subject-id {
      type leafref {
        path "/agp:agent-gateway-policy/agp:policy-subjects"
           + "/agp:subject/agp:subject-id";
      }
      mandatory true;
      description
        "Source gateway-recognized policy matching attribute.";
    }

    leaf destination-subject-id {
      type leafref {
        path "/agp:agent-gateway-policy/agp:policy-subjects"
           + "/agp:subject/agp:subject-id";
        require-instance false;
      }
      description
        "Optional destination gateway-recognized policy matching
         attribute.";
    }

    leaf profile-id {
      type leafref {
        path "/agp:agent-gateway-policy/agp:policy-profiles"
           + "/agp:profile/agp:profile-id";
      }
      mandatory true;
      description
        "Referenced policy profile.";
    }

    leaf enabled {
      type boolean;
      default "true";
      description
        "Administrative state of the assignment.";
    }

    leaf valid-from {
      type yang:date-and-time;
      description
        "Start time of assignment validity.";
    }

    leaf valid-until {
      type yang:date-and-time;
      description
        "End time of assignment validity.";
    }
  }
}

container effective-bindings {
  config false;
  description
    "Operational state for effective gateway attachment bindings.";

  list binding {
    key "binding-id";
    description
      "An effective gateway attachment binding.";

    leaf binding-id {
      type string;
      description
        "Binding identifier.";
    }

    leaf subject-id {
      type string;
      description
        "Gateway-recognized policy matching attribute associated
         with the binding.";
    }

    container selectors {
      description
        "Selectors associated with the binding.";
      uses selector-set;
    }

    leaf origin {
      type identityref {
        base binding-origin-base;
      }
      description
        "Origin of the binding.";
    }

    leaf verification-state {
      type identityref {
        base verification-state-base;
      }
      description
        "Verification state of the binding.";
    }

    leaf evidence-ref {
      type string;
      description
        "Reference to evidence supporting the binding.";
    }

    leaf created-at {
      type yang:date-and-time;
      description
        "Creation time.";
    }

    leaf last-refreshed-at {
      type yang:date-and-time;
      description
        "Last refresh time.";
    }

    leaf expires-at {
      type yang:date-and-time;
      description
        "Expiration time.";
    }
  }
}

container applied-policies {
  config false;
  description
    "Operational state for applied policies.";

  list applied-policy {
    key "applied-policy-id";
    description
      "An applied policy state entry.";

    leaf applied-policy-id {
      type string;
      description
        "Applied policy identifier.";
    }

    leaf assignment-id {
      type string;
      description
        "Policy assignment that produced this applied policy.";
    }

    leaf-list binding-id {
      type string;
      description
        "Attachment bindings used by this applied policy.";
    }

    leaf effective-enforcement-scope {
      type identityref {
        base enforcement-scope-base;
      }
      description
        "Effective enforcement scope.";
    }

    leaf enforcement-point-id {
      type string;
      description
        "Identifier of the enforcement point.";
    }

    leaf enforcement-point-type {
      type string;
      description
        "Type of the enforcement point.";
    }

    leaf referenced-policy {
      type instance-identifier {
        require-instance false;
      }
      description
        "Reference to the applied or referenced policy object.";
    }

    leaf enforcement-status {
      type identityref {
        base enforcement-status-base;
      }
      mandatory true;
      description
        "Enforcement status.";
    }

    leaf generation {
      type uint64;
      description
        "Generation or version number.";
    }

    leaf activated-at {
      type yang:date-and-time;
      description
        "Time at which the applied policy became active.";
    }

    leaf last-updated-at {
      type yang:date-and-time;
      description
        "Last update time.";
    }

    leaf failure-reason {
      type identityref {
        base failure-reason-base;
      }
      description
        "Failure reason.";
    }

    leaf failure-description {
      type string;
      description
        "Additional diagnostic text.";
    }

    container statistics {
      description
        "Counters associated with the applied policy.";
      uses applied-policy-statistics;
    }
  }
}   }
]]></artwork>
        <t>/*
   * Notifications
   */</t>
        <t>notification binding-changed {
    description
      "A gateway attachment binding has changed.";</t>
        <artwork><![CDATA[
leaf binding-id {
  type string;
  description
    "Binding identifier.";
}

leaf subject-id {
  type string;
  description
    "Policy subject identifier.";
}   }
]]></artwork>
        <t>notification policy-status-changed {
    description
      "The status of an applied policy has changed.";</t>
        <artwork><![CDATA[
leaf applied-policy-id {
  type string;
  description
    "Applied policy identifier.";
}

leaf assignment-id {
  type string;
  description
    "Policy assignment identifier.";
}

leaf enforcement-status {
  type identityref {
    base enforcement-status-base;
  }
  description
    "New enforcement status.";
}   }
]]></artwork>
        <t>notification policy-enforcement-failed {
    description
      "Policy enforcement has failed.";</t>
        <artwork><![CDATA[
leaf applied-policy-id {
  type string;
  description
    "Applied policy identifier.";
}

leaf assignment-id {
  type string;
  description
    "Policy assignment identifier.";
}

leaf failure-reason {
  type identityref {
    base failure-reason-base;
  }
  description
    "Failure reason.";
}   }
]]></artwork>
        <t>notification quota-threshold-crossed {
    description
      "A request, invocation, or token quota threshold has been crossed.";</t>
        <artwork><![CDATA[
leaf applied-policy-id {
  type string;
  description
    "Applied policy identifier.";
}

leaf assignment-id {
  type string;
  description
    "Policy assignment identifier.";
}

leaf threshold-type {
  type string;
  description
    "Threshold type.";
}   } } ```
]]></artwork>
      </section>
    </section>
    <section anchor="operational-considerations">
      <name>Operational Considerations</name>
      <section anchor="gateway-ownership-and-trust-boundary">
        <name>Gateway Ownership and Trust Boundary</name>
        <t>The policy model is useful when the Agent Gateway is operated by a trusted operator, service provider, or enterprise administrator. The operator should clearly define the trust boundary between agents, the gateway, external identity systems, model providers, and network enforcement points.</t>
      </section>
      <section anchor="binding-freshness">
        <name>Binding Freshness</name>
        <t>Attachment bindings are central to policy enforcement. Operators should configure suitable binding lifetimes according to deployment requirements.</t>
        <t>Short lifetimes reduce stale-policy risk but increase update overhead. Long lifetimes reduce update overhead but increase the risk of incorrect enforcement after agent movement.</t>
      </section>
      <section anchor="policy-conflict">
        <name>Policy Conflict</name>
        <t>Conflicts may occur when multiple policy assignments apply to the same subject.</t>
        <t>An implementation MUST apply deterministic conflict resolution. The result of conflict resolution SHOULD be visible in operational state.</t>
      </section>
      <section anchor="fail-open-and-fail-closed-behavior">
        <name>Fail-Open and Fail-Closed Behavior</name>
        <t>Different policy classes may require different failure behavior.</t>
        <t>For interaction access-control and isolation policies, fail-closed behavior SHOULD be supported.</t>
        <t>For resource-control or observation policies, degraded or best-effort operation MAY be acceptable according to operator policy.</t>
      </section>
      <section anchor="shared-attachments">
        <name>Shared Attachments</name>
        <t>Multiple agents may share the same address, port, connection, proxy, tunnel, or gateway session. In such cases, the operator must not assume that network-layer enforcement can distinguish individual agents.</t>
        <t>When per-agent distinction is required but cannot be represented by network selectors, gateway-local enforcement SHOULD be used.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Security considerations will be expanded in future revisions.</t>
      <t>The following aspects require particular attention:</t>
      <ul spacing="normal">
        <li>
          <t>authenticity of agent identifiers used as policy subjects;</t>
        </li>
        <li>
          <t>authorization of policy configuration changes;</t>
        </li>
        <li>
          <t>protection of gateway attachment binding state;</t>
        </li>
        <li>
          <t>prevention of stale or forged binding use;</t>
        </li>
        <li>
          <t>protection of applied policy state and counters;</t>
        </li>
        <li>
          <t>fail-closed behavior for access-control and isolation policies;</t>
        </li>
        <li>
          <t>privacy of agent identifiers, token counters, and interaction logs;</t>
        </li>
        <li>
          <t>secure communication between the Agent Gateway and network enforcement points; and</t>
        </li>
        <li>
          <t>auditability of policy changes and enforcement failures.</t>
        </li>
      </ul>
      <t>An implementation MUST protect the management interface according to existing secure management practices, including authentication, authorization, integrity protection, and confidentiality.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>TBD.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC7950" target="https://www.rfc-editor.org/info/rfc7950" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7950.xml">
          <front>
            <title>The YANG 1.1 Data Modeling Language</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7950"/>
          <seriesInfo name="DOI" value="10.17487/RFC7950"/>
        </reference>
        <reference anchor="RFC6991" target="https://www.rfc-editor.org/info/rfc6991" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6991.xml">
          <front>
            <title>Common YANG Data Types</title>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <date month="July" year="2013"/>
            <abstract>
              <t>This document introduces a collection of common data types to be used with the YANG data modeling language. This document obsoletes RFC 6021.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6991"/>
          <seriesInfo name="DOI" value="10.17487/RFC6991"/>
        </reference>
        <reference anchor="RFC8340" target="https://www.rfc-editor.org/info/rfc8340" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8340.xml">
          <front>
            <title>YANG Tree Diagrams</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="L. Berger" initials="L." role="editor" surname="Berger"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document captures the current syntax used in YANG module tree diagrams. The purpose of this document is to provide a single location for this definition. This syntax may be updated from time to time based on the evolution of the YANG language.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="215"/>
          <seriesInfo name="RFC" value="8340"/>
          <seriesInfo name="DOI" value="10.17487/RFC8340"/>
        </reference>
        <reference anchor="RFC8341" target="https://www.rfc-editor.org/info/rfc8341" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8341.xml">
          <front>
            <title>Network Configuration Access Control Model</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>The standardization of network configuration interfaces for use with the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires a structured and secure operating environment that promotes human usability and multi-vendor interoperability. There is a need for standard mechanisms to restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content. This document defines such an access control model.</t>
              <t>This document obsoletes RFC 6536.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="91"/>
          <seriesInfo name="RFC" value="8341"/>
          <seriesInfo name="DOI" value="10.17487/RFC8341"/>
        </reference>
        <reference anchor="RFC8342" target="https://www.rfc-editor.org/info/rfc8342" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8342.xml">
          <front>
            <title>Network Management Datastore Architecture (NMDA)</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder"/>
            <author fullname="P. Shafer" initials="P." surname="Shafer"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="R. Wilton" initials="R." surname="Wilton"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>Datastores are a fundamental concept binding the data models written in the YANG data modeling language to network management protocols such as the Network Configuration Protocol (NETCONF) and RESTCONF. This document defines an architectural framework for datastores based on the experience gained with the initial simpler model, addressing requirements that were not well supported in the initial model. This document updates RFC 7950.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8342"/>
          <seriesInfo name="DOI" value="10.17487/RFC8342"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC8519" target="https://www.rfc-editor.org/info/rfc8519" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8519.xml">
          <front>
            <title>YANG Data Model for Network Access Control Lists (ACLs)</title>
            <author fullname="M. Jethanandani" initials="M." surname="Jethanandani"/>
            <author fullname="S. Agarwal" initials="S." surname="Agarwal"/>
            <author fullname="L. Huang" initials="L." surname="Huang"/>
            <author fullname="D. Blair" initials="D." surname="Blair"/>
            <date month="March" year="2019"/>
            <abstract>
              <t>This document defines a data model for Access Control Lists (ACLs). An ACL is a user-ordered set of rules used to configure the forwarding behavior in a device. Each rule is used to find a match on a packet and define actions that will be performed on the packet.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8519"/>
          <seriesInfo name="DOI" value="10.17487/RFC8519"/>
        </reference>
        <reference anchor="RFC9067" target="https://www.rfc-editor.org/info/rfc9067" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9067.xml">
          <front>
            <title>A YANG Data Model for Routing Policy</title>
            <author fullname="Y. Qu" initials="Y." surname="Qu"/>
            <author fullname="J. Tantsura" initials="J." surname="Tantsura"/>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <author fullname="X. Liu" initials="X." surname="Liu"/>
            <date month="October" year="2021"/>
            <abstract>
              <t>This document defines a YANG data model for configuring and managing routing policies in a vendor-neutral way. The model provides a generic routing policy framework that can be extended for specific routing protocols using the YANG 'augment' mechanism.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9067"/>
          <seriesInfo name="DOI" value="10.17487/RFC9067"/>
        </reference>
        <reference anchor="RFC9899" target="https://www.rfc-editor.org/info/rfc9899" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9899.xml">
          <front>
            <title>Extensions to the YANG Data Model for Access Control Lists (ACLs)</title>
            <author fullname="O. Gonzalez de Dios" initials="O." surname="Gonzalez de Dios"/>
            <author fullname="S. Barguil" initials="S." surname="Barguil"/>
            <author fullname="M. Boucadair" initials="M." surname="Boucadair"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="December" year="2025"/>
            <abstract>
              <t>RFC 8519 defines a YANG data model for Access Control Lists (ACLs). This document specifies a set of extensions that fix many of the limitations of the ACL model as initially defined in RFC 8519. Specifically, it introduces augmentations to the ACL base model to enhance its functionality and applicability.</t>
              <t>This document also creates initial versions of IANA-maintained modules for ICMP types and IPv6 extension headers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9899"/>
          <seriesInfo name="DOI" value="10.17487/RFC9899"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+V9aXMb15Xod1XpP3TRH5LxABQl23JMjeOhJdnRlLaIyuTl
pfJqGkCD7AjoRroBUkzs//7OevdeAFKVZfTBBrv73nvudvZlOp3ev7ctt6vi
NDu7KKpt9mO+La7zm+xtvSrnN9nTuto29Sp7VS+K1f17+WzWFFfpb+/fW9Tz
Kl9DV4smX26nf73M62m9afPri2mODaYX3GC6oQbTk5P79+bw6KJubk6zdru4
f2+3WcCD9hQ6g/+fZo9OHj2ennw9PXl8/167m63Lti3r6v3NBt69eP7+h/v3
yk1zmm2bXbt9dHLyzckjALIp8tPszaZo8i183GZ5tche5RXAsEawz+D9/XvX
dfPhoql3G/j07fnZ73+8fw+a7raXdQOjw7JkZdWeZv91nP1fmAf8yVP7r7K6
0Cd1c5FX5V9plNPs6WVZ5dnvqnJer+Flsc7L1WmGi/Dnr04e/uccX+/o7fG8
gg9gWaG/YlFu6wb+nJdbWITvi/LPMAL+Xe9g6W+kXweid8fZ25w+YYje5ZU+
GAPQBj5t8iqGZzQA57QkDgTnl7u8NM9Grkp10X7x+PH+YNy/V9XNGnq/KmCf
suzdD08fPXz4jf7+1cOvv9TfX3/z1Yn+fvzNNw/NN198eeL8dp8/OsURymoZ
jvGrr+wY35w8/tr8/tU331Cb4+Nj/B+s03Sa5bN22+TzLT95f1m2GVyOHR2/
RbEsqwJPZVbTGa2b6TKf47la20OKZ5avCawA38E13sEMILPtuMHCv4/tcZa9
vyzke2nNt6CetUVzBYOX1bZAAOl+rOEQQtNFNrtBqLzOnmQlgFxDk6reCoCT
7KK+KppqAnuNo5TLm2wLA1KnVb7KZsVlflUioE22KpfF/Ga+KrJ6ib0TJqCl
onGmTbGiscsF/FUuy6JpJ/xRRtcT/toWVV5t8Ufefsjmq7xtC/wIJoTTKedF
tiquCpxjU2S7FnqrqxXMpc0U4zTFvL6AU1mYVYXtxbN3keXbbVPOdoB1YN0I
lZUF91TgMZhDk3xL8/OxHgw/ya4viyq7ylflgiZxoe+223x+SRs5K6sFDNNm
m6a+gklm7a7c5jNYj7ZYFXPYRZwKbHjb1nPehqrYInbS8ambTQ2r2x7zcdK9
hWMltw2BhNWCFVnWuwY2HcDX48PrBfjS7nl2Np8XbavofZL9tj6n9fxhVV/b
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
+AY1AQA=

-->

</rfc>
