<?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.43 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-geng-cats-yang-p4-consistency-00" category="exp" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="YANG-to-P4 Consistency">YANG-to-P4 Configuration Mapping and Update Consistency</title>
    <seriesInfo name="Internet-Draft" value="draft-geng-cats-yang-p4-consistency-00"/>
    <author initials="Y." surname="Geng" fullname="Yue Geng">
      <organization>Pengcheng Laboratory</organization>
      <address>
        <email>gengy@pcl.ac.cn</email>
      </address>
    </author>
    <author initials="Z." surname="Zhou" fullname="Zhipeng Zhou">
      <organization>Pengcheng Laboratory</organization>
      <address>
        <email>zhouzhp@pcl.ac.cn</email>
      </address>
    </author>
    <author initials="G." surname="Xie" fullname="Guorui Xie">
      <organization>Pengcheng Laboratory</organization>
      <address>
        <email>xiegr@pcl.ac.cn</email>
      </address>
    </author>
    <author initials="Q." surname="Li" fullname="Qing Li">
      <organization>Pengcheng Laboratory</organization>
      <address>
        <email>liq@pcl.ac.cn</email>
      </address>
    </author>
    <date year="2026" month="October" day="14"/>
    <area>Web and Internet Transport</area>
    <workgroup>Individual Submission</workgroup>
    <keyword>YANG</keyword>
    <keyword>P4</keyword>
    <keyword>Configuration Consistency</keyword>
    <abstract>
      <?line 79?>

<t>A YANG configuration can express management intent, but its acceptance
does not establish that dependent entries in a programmable forwarding
pipeline have become effective consistently. This document proposes an
experimental mapping and update profile for P4. It describes a 
target-specific mapping contract, capability validation, generation-based 
activation, preservation of existing flow bindings, failure recovery, and 
operational reconciliation. The profile distinguishes configuration 
acceptance, verified activation, and eventual convergence. 
It defines neither a new packet encapsulation nor a new YANG
module, and does not assume a network-wide atomic transaction.</t>
    </abstract>
  </front>
  <middle>
    <?line 92?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Computing-Aware Traffic Steering (CATS) framework <xref target="RFC10053"/> defines
the CATS Traffic Classifier (C-TC), CATS Path Selector (C-PS), metric 
agents, and CATS forwarders.The associated use cases and requirements 
are described in <xref target="RFC10054"/>. An implementation can place classification 
and forwarding functions ina P4-programmable device while performing path 
selection on a controller.</t>
      <t>The CATS data model <xref target="CATS-YANG"/> provides configuration and operational
objects for managing such a system. P4 <xref target="P4"/> and P4Runtime
<xref target="P4RUNTIME"/> operate on a different abstraction: a particular compiled
pipeline and its tables, actions, parameters, and other entities.
There is no general one-to-one translation from an arbitrary YANG tree
to an arbitrary P4 pipeline.</t>
      <t>For example, changing the selected instance can require an instance
entry, a next-hop entry, an encapsulation action, and a selection entry.
Updating these entities independently can expose a selection entry
before its dependencies exist. Retiring old entries too early can also
break flows that must remain bound to an earlier instance.</t>
      <t>This document proposes a bounded experiment to address those problems.
Its contribution is a mapping contract and an activation lifecycle with
explicit safety conditions. It does not replace a CATS selection
algorithm or prescribe where applications place their compute resources.</t>
      <section anchor="scope-and-status">
        <name>Scope and Status</name>
        <t>This is an individual experimental proposal for a single administrative
domain. It is not a CATS working group document. Requirements stated here
apply to implementations claiming this proposed profile, not to all CATS
or P4 implementations.</t>
        <t>The mapping is based specifically on revision -00 of <xref target="CATS-YANG"/>, which
is work in progress. Later revisions require a reviewed mapping-contract
update. This document defines no new YANG nodes, RPCs, notifications,
P4Runtime messages, or on-wire version field. Operational concepts
introduced here are adapter-local unless an implementation explicitly
provides an implementation-specific management extension.</t>
        <t>The scope is an existing, compatible P4 pipeline. Replacing a pipeline
program, migrating application state, inter-domain coordination, and
transparent recovery of arbitrary stateful services are outside scope.
The profile can preserve forwarding affinity, but cannot itself transfer
application state between service instances.</t>
      </section>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

</section>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The CATS terms CS-ID, CSCI-ID, C-TC, and C-PS follow <xref target="RFC10053"/>.
The datastore terminology follows <xref target="RFC8342"/>. This document also uses
the following terms:</t>
        <ul spacing="normal">
          <li>
            <t>Mapping contract: a versioned description that binds a supported YANG
schema and policy interpretation to a particular P4 pipeline schema.</t>
          </li>
          <li>
            <t>Configuration revision: a controller-assigned identifier for one
immutable snapshot of configuration intent.</t>
          </li>
          <li>
            <t>Generation: a locally scoped identifier for a coherent set of
forwarding entries and all of its dependencies.</t>
          </li>
          <li>
            <t>Activation domain: one device and one explicitly enumerated set of
ingress points sharing the activation mechanism. A switch with
independent pipelines may contain several activation domains.</t>
          </li>
          <li>
            <t>Binding: a mapping from a service flow key to an instance and the
forwarding generation needed to reach it.</t>
          </li>
          <li>
            <t>Admission: selection and, where required, binding of a new flow.</t>
          </li>
          <li>
            <t>Adapter: the component that validates intent, constructs target
operations, tracks their application, and reports realized state.</t>
          </li>
        </ul>
        <t>A configuration revision and a forwarding generation are distinct.
Metric-driven decisions can create multiple generations under the same
configuration revision. Their lifecycle <bcp14>MUST</bcp14> be serialized with
configuration-driven changes in the same activation domain.</t>
      </section>
    </section>
    <section anchor="architecture-and-management-semantics">
      <name>Architecture and Management Semantics</name>
      <artwork><![CDATA[
  Operator / management application
                 |
       YANG management interface
                 |
  +-----------------------------------------+
  | Datastores and configuration validation  |
  +-----------------------------------------+
                 |
  +-----------------------------------------+
  | Adapter                                 |
  | contract, capability checks, journal,    |
  | dependency plan, reconciliation          |
  +-----------------------------------------+
         ^                    |
   C-PS decision       P4Runtime / target API
         |                    |
  service + network   +-----------------------+
       metrics        | P4 C-TC and forwarder |
                      | bindings, generations |
                      +-----------------------+
]]></artwork>
      <t>NETCONF <xref target="RFC6241"/> or RESTCONF <xref target="RFC8040"/> can carry management
operations. The selected management protocol retains its defined
transaction and error semantics. A successful datastore edit <bcp14>MUST NOT</bcp14>
be reported by the adapter as verified data-plane activation unless the
verification conditions in this document have also been satisfied.</t>
      <t>The adapter <bcp14>MUST</bcp14> distinguish the desired configuration revision, the
last verified active generation for each activation domain, a pending
generation, and any failed or unknown outcome. It <bcp14>MUST</bcp14> preserve the
separation of intended and operational state described in <xref target="RFC8342"/>.
This proposal does not assign these reports to existing CATS model
leaves that have different meanings.</t>
      <t>The C-PS supplies a selection result that the adapter can realize. Raw
compute metrics are not automatically forwarding-table entries. The
mapping contract determines which derived selection state is installed.
The controller <bcp14>SHOULD</bcp14> coalesce metric-driven changes and limit update
rates so that telemetry cannot exhaust the configuration work queue.</t>
    </section>
    <section anchor="mapping-contract">
      <name>Mapping Contract</name>
      <section anchor="contract-identity-and-inputs">
        <name>Contract Identity and Inputs</name>
        <t>An adapter <bcp14>MUST</bcp14> bind each plan to the exact YANG module revisions and
enabled features, the mapping-contract version, the P4Info or equivalent
target schema, and an identity of the loaded forwarding pipeline.
Where numeric table and action identifiers are used, they <bcp14>MUST</bcp14> be
resolved against that exact schema. Names and identifiers are not
assumed to be portable between compilations.</t>
        <t>The contract <bcp14>MUST</bcp14> specify supported service identifier types, bit
widths, byte encoding, match kinds, action parameter ordering, default
actions, priority resolution, and the interpretation of counters.
It <bcp14>MUST</bcp14> also define the handling of absent or defaulted YANG values
according to <xref target="RFC7950"/>. Truncating an identifier to fit a target field
or silently dropping a match condition is not permitted.</t>
        <t>The input to planning consists of an immutable configuration snapshot,
a C-PS decision snapshot, current capabilities, and the observed
activation and binding state. The adapter <bcp14>MUST</bcp14> revalidate the relevant
identities immediately before activation. A pipeline identity change
invalidates a previously prepared plan.</t>
      </section>
      <section anchor="mapping-of-cats-objects">
        <name>Mapping of CATS Objects</name>
        <t>The following paths are relative to the cats container under
/rt:routing in <xref target="CATS-YANG"/>. The P4 entity names below are examples
of logical roles, not standardized table names or an extension to that
model.</t>
        <ul spacing="normal">
          <li>
            <t>base/enable controls admission of CATS traffic under the contract.
The contract <bcp14>MUST</bcp14> state whether disabling CATS drains existing
bindings or terminates them under an explicit operator policy.
It <bcp14>MUST NOT</bcp14> implicitly disable unrelated forwarding functions.</t>
          </li>
          <li>
            <t>base/service-policy, keyed by cs-id, selects the supported policy
interpretation. policy-type is translated into C-PS behavior and
derived selection state. An unsupported policy <bcp14>MUST</bcp14> be rejected
rather than mapped to an unrelated default algorithm.</t>
          </li>
          <li>
            <t>traffic-classifiers/traffic-classifier, keyed by cs-id, can contribute
protocol and server-port conditions to a service_classify role.
The contract <bcp14>MUST</bcp14> define direction, packet context, and ambiguous
overlap handling. A port alone is not assumed to identify a service.</t>
          </li>
          <li>
            <t>service-metrics/service-metric, keyed by cs-id, csci-id, and
source-type, contributes instance and metric information to the
decision process. location can contribute reachability information.
A next hop or tunnel endpoint <bcp14>MUST</bcp14> be resolved by the deployment
contract rather than assumed to equal location in every deployment.</t>
          </li>
          <li>
            <t>metrics/metric-type and metric-value remain typed inputs to that
process. Their units and ordering <bcp14>MUST NOT</bcp14> be inferred from the
integer value alone. priority and affinity <bcp14>MUST</bcp14> retain their model
semantics and <bcp14>MUST NOT</bcp14> be reinterpreted as P4 entry priorities or
hardware timeout values merely because field names appear similar.</t>
          </li>
          <li>
            <t>base/flow-timeout and flow-limits affect binding management and
admission. update-interval and notify-interval affect their specified
control or reporting functions. The contract <bcp14>MUST</bcp14> document units,
defaults, and timer precision rather than assume a device timer is
an exact implementation of a model timer.</t>
          </li>
          <li>
            <t>matched-packets, matched-bytes, forwarded-packets, and forwarded-bytes
are read-only observations. They <bcp14>MUST NOT</bcp14> be programmed as desired
counter values. Counter scope and reset behavior <bcp14>MUST</bcp14> be documented.</t>
          </li>
        </ul>
        <t>Classification <bcp14>MUST</bcp14> handle packets lacking the fields used by a rule.
For example, non-initial IP fragments do not expose transport ports.
An implementation <bcp14>MUST</bcp14> define a bounded handling path, such as an
existing association, controlled slow path, or drop. It <bcp14>MUST NOT</bcp14> parse
encrypted application content as if it were clear-text service metadata.</t>
      </section>
      <section anchor="logical-forwarding-roles">
        <name>Logical Forwarding Roles</name>
        <t>A generation-based realization can use the following roles:</t>
        <artwork><![CDATA[
  service_classify(packet context) -> local service handle
  flow_binding(service, flow key)  -> generation, instance handle
  active_generation(service)       -> generation for new admission
  service_select(generation, service, selector) -> instance handle
  instance_resolve(generation, instance handle) -> forwarding action
]]></artwork>
        <t>One physical table can implement several roles, or one role can require
multiple tables. That arrangement <bcp14>MUST</bcp14> preserve the logical semantics.
The local service handle is not a replacement for the external CS-ID.
The contract <bcp14>MUST</bcp14> maintain an unambiguous mapping and prohibit reuse
while any referencing entry or binding remains reachable.</t>
        <t>For the basic generation mechanism, classification semantics and binding
key interpretation remain stable during an update. If an update changes
those semantics, the adapter <bcp14>MUST</bcp14> include them in an independently
verified versioned lookup design or use the admission-quiescence
procedure below. Merely versioning the instance table is insufficient.</t>
      </section>
    </section>
    <section anchor="capability-validation-and-planning">
      <name>Capability Validation and Planning</name>
      <t>Before writing a plan, the adapter <bcp14>MUST</bcp14> validate the required parser
fields, match kinds, action parameters, table capacity, dependency
ordering, and activation behavior for every affected activation domain.
It <bcp14>MUST</bcp14> account for old entries retained by bindings as well as the
complete pending generation. Estimates based only on the new generation
are insufficient.</t>
      <t>Validation <bcp14>MUST</bcp14> include limits on bindings, simultaneous generations,
encapsulation size, and counter or timer behavior used by the plan.
Packets that exceed the resulting path MTU require an existing,
explicitly configured handling mechanism. This document defines no
fragmentation or new tunnel mechanism.</t>
      <t>P4Runtime exposes schema information through P4Info, but P4Info alone
does not establish available capacity or every target behavior. The
adapter <bcp14>MUST</bcp14> combine schema checks with target documentation and
verified operational capabilities. An implementation <bcp14>MUST</bcp14> reject a plan
when a required guarantee cannot be established.</t>
      <t>Validation returns either an applicable plan or an actionable error
identifying the unsupported input or capability. Configuration errors,
capacity exhaustion, stale controller ownership, and an unknown device
outcome <bcp14>MUST</bcp14> remain distinguishable. An error <bcp14>MUST NOT</bcp14> reveal another
tenant's identifiers or configuration.</t>
    </section>
    <section anchor="update-consistency">
      <name>Update Consistency</name>
      <section anchor="guarantees-and-limits">
        <name>Guarantees and Limits</name>
        <t>The basic safety property is that a packet admitted under a generation
uses a complete, internally compatible set of forwarding dependencies.
For an established binding, the property additionally preserves the
selected instance for the lifetime allowed by the service policy.
These properties do not imply that all packets in the network observe
the same generation at the same wall-clock instant.</t>
        <t>The adapter <bcp14>MUST</bcp14> identify one of the following activation mechanisms
for each plan:</t>
        <ul spacing="normal">
          <li>
            <t>A verified data-plane-atomic write covering the complete affected
dependency set in one supported target operation.</t>
          </li>
          <li>
            <t>A verified generation selector that is sampled once for each new
admission, with the sampled generation retained through all relevant
lookups, recirculation, and binding creation.</t>
          </li>
          <li>
            <t>An admission gate that prevents new admissions while changes are
applied and verified. Existing bindings either remain fully supported
or are drained under an explicit service policy before modification.</t>
          </li>
        </ul>
        <t>If none is available, the adapter <bcp14>MUST</bcp14> reject a request for this profile.
It <bcp14>MUST NOT</bcp14> silently weaken consistency to best-effort writes.</t>
        <t>In P4Runtime, CONTINUE_ON_ERROR does not give all-or-nothing behavior.
ROLLBACK_ON_ERROR can restore state after an error but does not make
intermediate states invisible to packets. DATAPLANE_ATOMIC provides a
stronger per-batch data-plane guarantee when supported
<xref target="P4RUNTIME"/>. The adapter <bcp14>MUST</bcp14> verify support for the actual operations
and dependency set. Separate atomic batches do not form one transaction.
Read-back by itself cannot prove that intermediate states were invisible.</t>
      </section>
      <section anchor="lifecycle">
        <name>Lifecycle</name>
        <artwork><![CDATA[
  VALIDATING -> PREPARING -> READY -> ACTIVATING -> ACTIVE
       |            |         |           |          |
       +------------+---------+           |       DRAINING
                    |                     |          |
                  FAILED               UNKNOWN    RETIRED
                                          |
                                     RECONCILING
]]></artwork>
        <t>The lifecycle is maintained per activation domain. PREPARING and READY
describe a pending generation. ACTIVE, DRAINING, and RETIRED describe
the generation after activation and replacement. These are conceptual
adapter states, not new YANG enumerations.</t>
        <ol spacing="normal" type="1"><li>
            <t>VALIDATING: validate the input snapshots and capabilities. Allocate
a non-conflicting generation and record a durable transaction identity,
desired revision, pipeline identity, and dependency plan.</t>
          </li>
          <li>
            <t>PREPARING: install dependencies before the entries that reference
them. Pending entries <bcp14>MUST</bcp14> remain unreachable by production admission.
A dependency crossing separate writes <bcp14>MUST</bcp14> be acknowledged before
its dependent write is issued, unless the target explicitly supports
that dependency in a single atomic operation.</t>
          </li>
          <li>
            <t>READY: read back the relevant owned entries or use an equivalent
authoritative device confirmation. Compare normalized entity state
with the plan. Verification <bcp14>MUST</bcp14> cover keys, masks, priorities,
action identifiers, and parameters, not only entry counts.</t>
          </li>
          <li>
            <t>ACTIVATING: recheck ownership and pipeline identity, then switch the
admission selector using the verified mechanism. Journal the intended
switch before issuing it. A transport timeout is an unknown outcome,
not evidence of success or failure.</t>
          </li>
          <li>
            <t>ACTIVE: confirm the selector and required generation state. Report
verified activation only for domains that have reached this step.</t>
          </li>
          <li>
            <t>DRAINING: retain the old generation while live bindings or in-flight
packets can reference it. Prevent creation of new bindings under that
generation, except those already racing with the selector switch and
explicitly included in the drain accounting.</t>
          </li>
          <li>
            <t>RETIRED: remove old selection entries before removing their
dependencies. Do not reuse generation identifiers until no old
references, outstanding writes, or delayed recovery operations can
resolve to the reused value.</t>
          </li>
        </ol>
        <t>The selector <bcp14>MUST</bcp14> be scoped to the same coherence unit as the generation.
If an update spans several services without a common atomic selector,
the adapter <bcp14>MUST</bcp14> report separate activation outcomes. It cannot claim
that the service group changed atomically.</t>
      </section>
      <section anchor="flow-binding-and-retirement">
        <name>Flow Binding and Retirement</name>
        <t>An established binding is looked up before choosing a new generation.
The binding key <bcp14>MUST</bcp14> include the service and applicable tenant context,
not merely a hash whose collisions can redirect traffic. A hash-based
implementation <bcp14>MUST</bcp14> detect or otherwise safely resolve collisions.</t>
        <t>Concurrent first packets of the same flow <bcp14>MUST</bcp14> select the same binding.
This requires a verified atomic binding operation or a serialized,
bounded admission path. A read-then-write sequence without exclusion
does not satisfy this requirement. Buffering, drops, and admission
timeouts on that path <bcp14>MUST</bcp14> have explicit limits and observable counters.</t>
        <t>Flow aging <bcp14>MUST</bcp14> follow the configured service semantics. If the target
cannot implement the required aging accurately, a documented controller
timer can provide a coarser behavior only when that behavior satisfies
the accepted policy. Otherwise the configuration <bcp14>MUST</bcp14> be rejected.</t>
        <t>Retirement requires authoritative evidence that no live binding remains
and a sufficient bound on in-flight packet residence, including queues
and recirculation. If such evidence or a bound is unavailable, the
adapter <bcp14>MUST</bcp14> retain the generation or explicitly quiesce and drain the
affected service. A fixed delay chosen without these conditions is not
proof of safe retirement.</t>
      </section>
      <section anchor="failure-rollback-and-controller-recovery">
        <name>Failure, Rollback, and Controller Recovery</name>
        <t>Before activation, failure leaves the previous generation active.
Unreachable partial entries can be removed after their ownership and
absence of references are verified. Capacity reservations <bcp14>MUST</bcp14> remain
accounted for until cleanup is confirmed.</t>
        <t>After activation, changing the selector back is a new admission decision.
Flows already bound to the newer generation <bcp14>MUST</bcp14> continue to have their
dependencies available. Rollback <bcp14>MUST NOT</bcp14> delete those dependencies or
move such flows to a different instance without explicit service policy.
If the newer instance has failed, ordinary affinity is no longer enough.
The adapter <bcp14>MUST</bcp14> apply a declared service recovery policy, such as drop,
reject, or use of a service-supported alternative. This document cannot
guarantee continuity of application state.</t>
        <t>On a timeout or controller restart, the adapter enters reconciliation
with the outcome marked UNKNOWN. It <bcp14>MUST</bcp14> recover the durable journal,
read the pipeline identity and activation selector, and compare the
owned dependency set before taking further action. Repeating INSERT or
DELETE blindly is not idempotent recovery. A retry <bcp14>MUST</bcp14> compare desired
and observed normalized entities and issue only the required changes.</t>
        <t>Only one authorized writer may control an activation domain at a time.
When using P4Runtime, the applicable arbitration and role mechanism
<bcp14>MUST</bcp14> be used. The adapter <bcp14>MUST</bcp14> stop writes when its authority is lost.
Other target APIs require equivalent fencing. A management datastore
lock alone does not fence a stale writer on the southbound interface.</t>
        <t>If the device loses bindings during restart, the adapter <bcp14>MUST NOT</bcp14> claim
that prior affinity remains intact. The recovery policy must explicitly
re-establish supported state, drain affected sessions, or expose service
disruption before admitting affected traffic.</t>
      </section>
      <section anchor="more-than-one-device">
        <name>More Than One Device</name>
        <t>READY can be required on every intended device before activation starts,
but activation can still succeed on only a subset. The controller <bcp14>MUST</bcp14>
report that partial state and the recovery policy. It <bcp14>MUST NOT</bcp14> report
a distributed atomic commit based only on separate device acknowledgments.</t>
        <t>For ingress and egress dependencies, a deployment <bcp14>MUST</bcp14> either keep both
generations compatible at egress during the overlap, use an already
defined and verified way to identify the required forwarding context,
or quiesce admission across the affected service path. A device-local
metadata generation is not automatically carried across the network.
Defining a new packet field to carry it is outside this document.</t>
      </section>
    </section>
    <section anchor="operational-state-and-reconciliation">
      <name>Operational State and Reconciliation</name>
      <t>The adapter <bcp14>MUST</bcp14> expose, through a documented implementation interface,
the desired revision, mapping-contract identity, pipeline identity,
pending and active generations per domain, lifecycle state, last verified
time, and a bounded error description. It <bcp14>SHOULD</bcp14> expose retained
generations, resource usage, and drift counters. This is a reporting
requirement for the experiment, not a claim that <xref target="CATS-YANG"/> already
defines all of these objects.</t>
      <t>Reconciliation <bcp14>MUST</bcp14> be bounded in rate and scope. It compares only
entities owned by the adapter and <bcp14>MUST NOT</bcp14> delete unrelated routing,
ACL, or other application entries. Shared dependencies require explicit
ownership or reference tracking. Unexpected pipeline identity changes
halt activation until the mapping contract has been revalidated.</t>
      <t>Counters can reset on restart or generation replacement. Their
aggregation <bcp14>MUST</bcp14> avoid double counting during overlap and <bcp14>MUST</bcp14> identify
discontinuities to consumers. A counter read and a table read are not
assumed to be one simultaneous snapshot.</t>
      <t>Metric validity, reachability, and configuration consistency are separate
properties. A fully installed generation can still embody an obsolete
C-PS decision. The deployment <bcp14>SHOULD</bcp14> define maximum decision age,
metric-loss handling, and admission behavior when no eligible instance
exists. An adapter <bcp14>MUST NOT</bcp14> infer that a successful write makes stale
metrics valid again.</t>
    </section>
    <section anchor="example-update">
      <name>Example Update</name>
      <t>The following values and names are illustrative local identifiers. They
are not allocated protocol values, a prescribed P4 program, or a new
YANG schema.</t>
      <artwork><![CDATA[
  configuration revision: 41
  service handle:         100
  active generation:      7
  existing binding:       flow-A -> (7, instance-1)
  new C-PS decision:      instance-2

  prepare generation 8:
    instance_resolve(8, instance-2) = verified forwarding action
    service_select(8, 100, default) = instance-2
  verify generation 8 and current pipeline identity
  activate: active_generation(100) = 8

  flow-A still resolves through (7, instance-1)
  newly admitted flow-B binds to (8, instance-2)
  retire 7 only after its bindings and packets have drained
]]></artwork>
      <t>If the activation response is lost, read-back can show either 7 or 8.
In either case, the controller verifies the corresponding dependencies
before reporting the outcome. If neither result is trustworthy, the
state remains UNKNOWN and further admission follows the configured
failure policy. If a rollback admits new flows under 7, generation 8
still remains available to flow-B until it drains.</t>
    </section>
    <section anchor="experimental-evaluation">
      <name>Experimental Evaluation</name>
      <t>An experiment <bcp14>SHOULD</bcp14> compare direct sequential writes, any verified
target-atomic mechanism, and the generation mechanism under the same
traffic and resource conditions. Unsupported mechanisms must be marked
unsupported rather than emulated and reported as hardware guarantees.
No performance ordering between switch ASIC and FPGA targets is assumed.</t>
      <t>The experiment <bcp14>SHOULD</bcp14> cover concurrent first packets, flow-hash
collisions, near-capacity tables, delayed responses, lost activation
acknowledgments, controller failover, device restart, partial multi-device
activation, and a change in classifier or pipeline identity. A service
instance failure during drain is a separate required recovery scenario.</t>
      <t>Measurements <bcp14>SHOULD</bcp14> include accepted-to-active time, reconciliation time,
retained entry count, admission loss, incorrect-instance delivery,
binding changes, and application completion latency. Zero observed
violations in a finite test is not a proof of correctness. Reports
<bcp14>SHOULD</bcp14> state device and compiler versions, supported atomicity modes,
traffic seeds, offered load, sample counts, and uncertainty.</t>
      <t>Progress toward wider interoperability depends on showing that at least
two target realizations preserve the same classification and affinity
semantics, that unknown outcomes recover without blind replay, and that
resource exhaustion produces a bounded, observable failure. Whether a
common YANG augmentation for activation status is useful is a subject
for subsequent work, not an unimplemented requirement of this revision.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>A compromised mapping contract or C-PS input can redirect service
traffic even when table updates are internally consistent. Management
and southbound access <bcp14>MUST</bcp14> authenticate peers, authorize operations by
tenant and role, and protect integrity and confidentiality. NETCONF and
RESTCONF access control can use <xref target="RFC8341"/>. P4Runtime transport security
must follow its specification <xref target="P4RUNTIME"/>, with appropriate TLS
configuration <xref target="RFC9846"/>. Physical placement within one domain alone
is not an adequate authorization mechanism.</t>
      <t>Pipeline artifacts and mapping contracts <bcp14>MUST</bcp14> come from authorized
sources. Their identity must be bound to a plan so that a valid plan
cannot be replayed onto an incompatible program. Journals and ownership
records <bcp14>MUST</bcp14> be protected against unauthorized modification and stale
writer replay. Generations alone are not security tokens.</t>
      <t>Operators <bcp14>MUST</bcp14> limit outstanding plans, retained generations, flow
bindings, and slow-path admission work. An attacker can otherwise
exhaust table memory by inducing updates or keeping bindings alive.
Cleanup under pressure <bcp14>MUST</bcp14> preserve isolation and <bcp14>MUST NOT</bcp14> silently
reassign a live flow to another tenant or instance.</t>
      <t>Operational reports and counters can reveal workload placement and
activity. Access <bcp14>SHOULD</bcp14> be restricted to the necessary scope, and error
messages <bcp14>SHOULD</bcp14> avoid packet payloads and unrelated identifiers.
Recovery and rollback <bcp14>MUST</bcp14> retain policy enforcement, including ACLs,
even when steering is unavailable. A fallback path <bcp14>MUST NOT</bcp14> bypass
authorization merely to keep packets moving.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions. It defines no new YANG module,
namespace, registry, port, IP protocol number, or packet header. Local
table names and generation identifiers in the examples have no on-wire
allocation or interoperability significance.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC6241">
          <front>
            <title>Network Configuration Protocol (NETCONF)</title>
            <author fullname="R. Enns" initials="R." role="editor" surname="Enns"/>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6241"/>
          <seriesInfo name="DOI" value="10.17487/RFC6241"/>
        </reference>
        <reference anchor="RFC8040">
          <front>
            <title>RESTCONF Protocol</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8040"/>
          <seriesInfo name="DOI" value="10.17487/RFC8040"/>
        </reference>
        <reference anchor="RFC7950">
          <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="RFC8342">
          <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>
        <reference anchor="RFC10053">
          <front>
            <title>A Framework for Computing-Aware Traffic Steering (CATS)</title>
            <author fullname="C. Li" initials="C." role="editor" surname="Li"/>
            <author fullname="Z. Du" initials="Z." surname="Du"/>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="L. M. Contreras" initials="L. M." surname="Contreras"/>
            <author fullname="J. Drake" initials="J." surname="Drake"/>
            <date month="October" year="2026"/>
            <abstract>
              <t>This document describes a framework for Computing-Aware Traffic
 Steering (CATS). Specifically, the document identifies a set of CATS
 functional components, describes their interactions, and provides
 illustrative workflows of the control and data planes. The framework
 covers only the case of a single service provider.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="10053"/>
          <seriesInfo name="DOI" value="10.17487/RFC10053"/>
        </reference>
        <reference anchor="CATS-YANG" target="https://datatracker.ietf.org/doc/html/draft-ietf-cats-data-model-00">
          <front>
            <title>Data Model for Computing-Aware Traffic Steering (CATS)</title>
            <author initials="H." surname="Yao" fullname="Huijuan Yao">
              <organization/>
            </author>
            <author initials="C." surname="Lin" fullname="Changwang Lin">
              <organization/>
            </author>
            <author initials="Z." surname="Li" fullname="Zhenqiang Li">
              <organization/>
            </author>
            <author initials="Q." surname="Xiong" fullname="Quan Xiong">
              <organization/>
            </author>
            <author initials="L. M." surname="Contreras" fullname="Luis M. Contreras">
              <organization/>
            </author>
            <date year="2026" month="September" day="23"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cats-data-model-00"/>
        </reference>
        <reference anchor="P4RUNTIME" target="https://p4lang.github.io/p4runtime/spec/v1.5.0/P4Runtime-Spec.html">
          <front>
            <title>P4Runtime Specification</title>
            <author>
              <organization>The P4.org API Working Group</organization>
            </author>
            <date year="2026" month="February"/>
          </front>
          <seriesInfo name="Version" value="1.5.0"/>
        </reference>
        <reference anchor="RFC2119">
          <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">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC8341">
          <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="RFC9846">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="July" year="2026"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document obsoletes RFC 8446, which specified TLS 1.3. This document obsoletes RFC 5246 (specifying TLS 1.2) and RFCs 5077, 6961, 7627, and 8422, all of which pertain to TLS 1.2 or earlier, and updates RFCs 5705 and 6066. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9846"/>
          <seriesInfo name="DOI" value="10.17487/RFC9846"/>
        </reference>
        <reference anchor="RFC10054">
          <front>
            <title>Computing-Aware Traffic Steering (CATS) Problem Statement, Use Cases, and Requirements</title>
            <author fullname="K. Yao" initials="K." surname="Yao"/>
            <author fullname="L. M. Contreras" initials="L. M." surname="Contreras"/>
            <author fullname="H. Shi" initials="H." surname="Shi"/>
            <author fullname="S. Zhang" initials="S." surname="Zhang"/>
            <author fullname="Q. An" initials="Q." surname="An"/>
            <date month="October" year="2026"/>
            <abstract>
              <t>Distributed computing enhances service response time and energy efficiency by utilizing diverse computing facilities for compute-intensive and delay-sensitive services. To optimize throughput and response time, Computing-Aware Traffic Steering (CATS) selects servers and directs traffic based on compute capabilities and resources, rather than static dispatch or connectivity metrics alone. This document outlines the problem statement and scenarios for CATS within a single domain and drives requirements for the CATS framework.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="10054"/>
          <seriesInfo name="DOI" value="10.17487/RFC10054"/>
        </reference>
        <reference anchor="P4" target="https://p4.org/wp-content/uploads/sites/53/2024/10/P4-16-spec-v1.2.5.html">
          <front>
            <title>P4_16 Language Specification</title>
            <author>
              <organization>The P4 Language Consortium</organization>
            </author>
            <date year="2024" month="October"/>
          </front>
          <seriesInfo name="Version" value="1.2.5"/>
        </reference>
      </references>
    </references>
    <?line 632?>

<section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>No implementation is reported in this revision. The mapping roles,
state machine, and example are proposals for evaluation. Publication of
test results should identify both supported and unsupported consistency
mechanisms and the exact target configurations used.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA619bXfbRpbmd56j/4DJfNhkm6Qsx0kcndmeZWTZrRlZVkty
Z5I9uz4gUBLRBgE2CpDM7nT/lv0t+8v2PvelqkDS05nZzTndpkCgUHXrvjz3
rTibzY4mvs+b8kNet407zfpucEeTatPxR98/f/bs+2fPjyZF3p9m7tOGbh+W
68r7qm367YaeuDi/e300yTuXn2Y/umVGg2UXTe+6xvXZXZc3ftN2/dHk6YHu
bcrqsSqHvM5uwzBHk7ItmnxNY5Vdft/PHlzzMKMX+tk2p0+bF7OibXzle9cU
29mzZ0eTvupruv2nxdWbWd/Orl9kZ21zXz0MXd7TiNnbfLOpmgeey/tNmfcO
N9gQNNvlsnOPuwPE72t6Ly0XU6NnT7Pnz55/Ozt5Njt5cTT5+HR6NMmyGT8s
n65fyL/jSYzfOPSrttMnq8bTu+fZG1oormSZLP+nwSXX2o7mcE1/Fiv6v+wy
X7Y0cttt5Wu3zqv6NAOxtv99U9TzvJgXTfKCn+fZz6t2SF/w86raYKx4/de9
5M90/59Xm4OveTPP/q1y6VveDG03VPHqr3vHp8o9dAff8Pt5dlmlL/g99tYu
/brR6+pP47Gz7GjStN2a9urR8b7cvD779vmLE/v88tmLZ/b5u++/CZ9ffv3i
uX0+efbsm6/5j7PF3e0MHHEqgyuHvsr7PHvblq7O7tuOWGK9GXqa/WzxRBID
8bi/r4rstneuw6K+xDhfyRAJy+A/Jcbv5tlPeWsXjSK/G6o/DnmTfqX3n4F4
ze79Zyvi8KecydjsPPFzJHfKOa75U5UndE+359+I3x92H/k9JjT6Rh+4nGdv
5xCPvnNd7nefuxwqf+CGRBKffT97/rVc9UQ356vmvg2EMuUzewVtYkqlcv29
KBUaKJ+tsSesS3i38u7B0a2rvt/40+Nj3NJ3efHRdXM8OCcmOyYtdbzq1/Xx
3x3w+sXN+6u7i7fnY2agy0PTV2uX3W5cUdHGs6L4zG4zX9+tHD2G12eL64vs
x7b7CDZ507XDZp8szz9Lkz+4Dqr2NDuZfzP/zKI3L6D25g9VvxqW86qlC53M
99jTfI8f+dnjsIoZVjEHRchg0Mt2ZInkJMjS9y9ffJvKzItTIdMufT6cfEsC
3DwM+cN/mEjxQSheMjnVsN4h0QvS4b+GRM/n33yORMwJTxtYJNLs/fGwqdu8
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
+BsZNjkOhYj2fwGcrr806nUAAA==

-->

</rfc>
