| Internet-Draft | CATS C-SMA Functional Implementation | October 2026 |
| Zhang, et al. | Expires 10 April 2027 | [Page] |
The Computing-Aware Traffic Steering (CATS) framework defines the CATS Service Metric Agent (C-SMA) as the functional entity responsible for collecting service capabilities and status, and reporting them to CATS Path Selectors (C-PSes). While the framework and the CATS metric documents define the components and the metrics, the concrete observable behavior of the C-SMA - in particular, how it validates and sanitizes the metrics it collects, how it manages soft-state for stale or failing Service Contact Instances (SCIs), and how it synchronizes with the C-PS - remains underspecified.¶
This document fills that gap. It specifies the functional behavior of the C-SMA in terms of observable behavior and reporting semantics: how the C-SMA collects metric reports from SCIs (as specified in [I-D.zhangb-cats-sci-implementation]); how it validates and sanitizes these reports to prevent erroneous or malicious data from influencing traffic steering; how it manages a local metric cache with soft-state aging; how it enforces local policies and update control policies; and how it synchronizes with the C-PS, including recovery and reconciliation. A decomposition of the C-SMA into internal functional components is provided as illustrative implementation guidance, not as a mandated software architecture.¶
This document complements [RFC10053], [I-D.ietf-cats-metric-definition-13], [I-D.zhangb-cats-service-metrics-op], and [I-D.zhangb-cats-sci-implementation] by providing the operational execution layer for the C-SMA within the unified CATS architecture.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 10 April 2027.¶
Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
The Computing-Aware Traffic Steering (CATS) framework [RFC10053] defines the CATS Service Metric Agent (C-SMA) as a functional component that gathers information about service sites and server resources, as well as the status of the different service instances. The C-SMA advertises these metrics to CATS Path Selectors (C-PSes) to enable compute-aware traffic steering decisions.¶
However, the framework does not specify:¶
How a C-SMA collects metrics from multiple Service Contact Instances (SCIs) within a service site.¶
How a C-SMA validates, and caches metrics before reporting.¶
How a C-SMA adapts to different control-plane deployment models (centralized, distributed, hybrid).¶
How a C-SMA enforces local policies, security policies, and update control policies.¶
How a C-SMA handles failures, partitions, and recovery scenarios.¶
This document specifies the functional behavior of the C-SMA to address these gaps. The normative requirements of this document are stated in terms of observable C-SMA behavior and of the reporting semantics towards the C-PS; the decomposition of the C-SMA into internal functional components in Section 3 is provided as illustrative implementation guidance.¶
The C-SMA acts as the bridge between the service site (and its SCIs) and the CATS control plane. It is responsible for:¶
Collecting metrics from one or more SCIs within the service site.¶
Validating and sanitizing metrics to prevent erroneous or malicious data from influencing traffic steering.¶
Caching metrics and maintaining soft-state to handle transient failures.¶
Adapting to the control-plane protocol used in the deployment (as analyzed in [I-D.yxl-cats-protocols-applicability]).¶
Enforcing local policies (e.g., metric transformation, update throttling, security level requirements).¶
Authenticating SCIs and C-PSes, and protecting metric integrity.¶
Handling failures of SCIs, C-PSes, and network partitions.¶
This document specifies the functional behavior of the C-SMA as a CATS component. As with the SCI document [I-D.zhangb-cats-sci-implementation], the scope is deliberately limited in two ways. First, the normative requirements concern the observable behavior of the C-SMA - the validation rules applied to incoming SCI reports, the soft-state management of the metric cache, and the synchronization semantics towards the C-PS. Second, how the C-SMA is internally structured is a local matter; Section 3 provides an illustrative component decomposition that is informative in nature.¶
The relationships to other CATS documents are as follows:¶
[RFC10053] defines the CATS components and their interactions, including the C-SMA role of collecting service metrics and advertising them to C-PSes, and the centralized/distributed/hybrid deployment models (Appendix A of that document). This document provides the detailed C-SMA-side behavior that the framework leaves open.¶
[I-D.ietf-cats-metric-definition-13] defines the CATS metric taxonomy, the CATS metric field template, and the "CATS Metrics" registry. The validation rules in Section 4.2 of this document reference the metric semantics and field definitions of that document; this document does not define new metric categories.¶
[I-D.zhangb-cats-service-metrics-op] defines the service-oriented metrics (Global Available Slots, Computing Time, Price, Reputation, Security Level) and the C-PS side joint selection workflow. The metrics that the C-SMA collects, validates, and advertises are those defined in that document.¶
[I-D.zhangb-cats-sci-implementation] specifies the SCI-side behavior: how an SCI derives and reports service-oriented metrics to the C-SMA. This document is the control-plane counterpart: it specifies how the C-SMA receives, validates, caches, and forwards those reports. The two documents share the same metric semantics, the same health state model, and the same update-control philosophy; the report fields defined in that document are the input to the validation and caching functions defined here.¶
[I-D.ietf-cats-oam-fw] defines the OAM framework and requirements for CATS. The failure-detection, synchronization, and partitioned-operation behavior specified in Sections 9 and 10 of this document is a component-level behavior that complements, and is consistent with, the OAM requirements; the OAM mechanisms and management interfaces are out of scope here.¶
[I-D.ietf-cats-data-model] defines a YANG data model for the management of CATS. The thresholds, policies, and configuration objects mentioned in Section 7 of this document should be mapped to that data model where applicable; this document does not define new YANG objects.¶
[I-D.yxl-cats-protocols-applicability] discusses the applicability of existing protocols for CATS. This document does not define new protocol extensions or wire formats for metric distribution; it specifies the C-SMA-side behavior that is independent of the chosen transport, and leaves protocol selection to that document (see Section 6).¶
The framework states that how a service provider structures its services remains out of the scope of CATS. This document does not standardize the internal structure of a C-SMA implementation; it standardizes the behavior of the C-SMA that is observable by other CATS components, in particular the C-PS.¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
This document makes use of the terms defined in [RFC10053], [I-D.ietf-cats-metric-definition-13], [I-D.zhangb-cats-service-metrics-op], and [I-D.zhangb-cats-sci-implementation]. In particular:¶
CS-ID (CATS Service ID): An identifier for a service.¶
CSCI-ID (CATS Service Contact Instance ID): An identifier for a service contact instance.¶
Global Available Slots (GAS): The maximum number of concurrent requests a service site is willing and able to serve for a specific CS-ID at a given time, as defined in [I-D.zhangb-cats-service-metrics-op].¶
Computing Time: The time required for the site to perform one service request, as defined in [I-D.zhangb-cats-service-metrics-op].¶
C-SMA (CATS Service Metric Agent): The functional entity that collects service metrics and advertises them to C-PSes.¶
C-PS (CATS Path Selector): The functional entity that selects paths towards service sites and instances.¶
Additionally, the following terms are used in this document:¶
Service Site: A location that hosts one or more SCIs and their underlying service instances.¶
SCI Report: A message sent by an SCI to the C-SMA containing aggregated metrics and status, as defined in [I-D.zhangb-cats-sci-implementation].¶
Metric Cache: A local data structure maintained by the C-SMA to store the most recent metrics from each SCI.¶
Update Trigger: An event that causes the C-SMA to send a metric update to the C-PS.¶
Policy Engine: The component within the C-SMA that evaluates and enforces local policies on metric reporting.¶
Protocol Adapter: The component within the C-SMA that adapts internal metric representations to the wire format required by the control-plane protocol.¶
This section provides a decomposition of the C-SMA into internal functional components. This decomposition is illustrative: it identifies the functions that a C-SMA implementation needs to provide, but it does not mandate a specific software architecture. The normative requirements of this document are expressed in terms of observable C-SMA behavior (Sections 4 to 11), in particular the validation rules in Section 4.2 and the synchronization semantics in Section 9. Implementations may realize the functions below in any manner that satisfies those requirements.¶
Figure 1 shows a logical decomposition of the C-SMA:¶
+---------------------------------------------------------------+
| CATS Service Metric Agent (C-SMA) |
| |
| +----------------+ +------------------+ +---------------+ |
| | SCI Collection | | Validator & | | Update | |
| | Interface (SI) | | Sanitizer (VS) | | Controller(UC)| |
| +-----+----------+ +--------+---------+ +------+--------+ |
| | | | |
| +-----v--------------------v--------------------v----------+ |
| | Metric Cache (MC) | |
| +---------------------------+------------------------------+ |
| | |
| +---------------------------v------------------------------+ |
| | Protocol Adapter (PA) | |
| +---------------------------+------------------------------+ |
| | |
+------------------------------v--------------------------------+
|
+------v------+
| C-PS |
+-------------+
The Policy Engine (PE) is a cross-cutting component consulted by the Validator & Sanitizer, the Metric Cache, and the Update Controller; it is omitted from the data path in Figure 1 for clarity. The internal components of a C-SMA are defined as follows. These definitions are descriptive; the behavioral requirements that each component helps satisfy are given in the corresponding sections.¶
The C-SMA sits between the service site (SCIs) and the CATS control plane (C-PS). Its relationships with other CATS components are:¶
The C-SMA receives metric reports from one or more SCIs within the service site.¶
The C-SMA validates, and caches these metrics.¶
The C-SMA advertises metrics to the C-PS via the control-plane protocol.¶
The C-SMA does not directly interact with clients, C-TCs, or CATS-Forwarders.¶
The C-SMA may be co-located with an SCI, an Egress CATS-Forwarder, or deployed as a standalone component within the service site.¶
The C-SMA is the authoritative source of computing metrics for the service site. The C-PS relies on the C-SMA's reports to build the Computing Service Table.¶
The SCI Collection Interface (SI) receives metric reports from SCIs. The interface supports the following modes:¶
The SI MUST support multiple concurrent SCI connections. Each connection is identified by the CSCI-ID and authenticated.¶
The Validator & Sanitizer (VS) inspects every incoming SCI report before it enters the Metric Cache. The purpose is to prevent erroneous or malicious reports from influencing traffic steering decisions. The validation rules below are normative in the sense that a C-SMA MUST apply them; the exact thresholds are example values and MUST be configurable. The semantics and units of the validated metrics are those defined in [I-D.zhangb-cats-service-metrics-op] . The VS performs the following checks:¶
The Metric Cache (MC) stores the most recent validated metrics from each SCI. The cache is organized as follows:¶
| CSCI-ID | CS-ID | GAS | Comp Time (ms) | Health Status |
|---|---|---|---|---|
| 188.3.67.3:67 | ARS | 400 | 5 | HEALTHY |
| 188.3.67.3:68 | VRS | 100 | 15 | HEALTHY |
| 188.3.67.4:69 | ARS | 600 | 6 | HEALTHY |
| 188.3.67.4:70 | LLMS | 300 | 12 | DEGRADED |
Each entry includes: CSCI-ID and CS-ID; all reported metrics (GAS, Computing Time, optional metrics); Health status; Timestamp of last update; Sequence number of last report; TTL (time-to-live) for soft-state aging.¶
The MC provides O(1) lookup by CSCI-ID and supports range queries by CS-ID for aggregation.¶
The MC implements soft-state aging to handle SCI failures or network partitions. The behavior in this section addresses the CATS charter item on the appropriate frequency and scope of metric distribution: aging and withdrawal semantics determine how a C-PS can safely rely on previously advertised metrics, and what the C-SMA advertises when a source of metrics disappears.¶
The C-SMA maintains a state machine for each SCI. This state machine operates at the granularity of an SCI (a reporting endpoint at a service site) and tracks the reliability of the SCI as a source of metric reports. It is distinct from, and complementary to, the instance-level health state machine defined in [I-D.zhangb-cats-sci-implementation] (HEALTHY, DEGRADED, UNHEALTHY, UNKNOWN), which tracks the operational state of a service instance: an SCI in the ACTIVE state may report instances in any health state, and an SCI that is FAILED as a reporting source implies that the health of the instances behind it is unknown to the C-PS.¶
ACTIVE: The SCI has been discovered but not yet confirmed healthy.¶
HEALTHY: The SCI is reporting metrics normally.¶
STALE: No report received within TTL. The C-SMA attempts recovery.¶
FAILED: The SCI is considered unreachable. Its metrics are withdrawn.¶
State transitions trigger updates to the C-PS as appropriate.¶
The Protocol Adapter (PA) maps the internal representation of the metric cache and the update-control decisions onto the control-plane protocol used in a deployment. The applicability of candidate protocols (e.g., BGP-LS, NETCONF/YANG-Push, RESTful APIs) to CATS is analyzed in [I-D.yxl-cats-protocols-applicability], and the configuration objects used by the C-SMA should be mapped to the YANG data model of [I-D.ietf-cats-data-model] where applicable.¶
This document intentionally does not define new protocol extensions, TLVs, or API paths for metric distribution. The C-SMA-side requirements that are independent of the transport are specified here; the wire formats and their registrations are a matter for the protocol documents identified by [I-D.yxl-cats-protocols-applicability]. This keeps the protocol design in the documents where the corresponding review and registration processes live, and keeps the present document focused on C-SMA behavior.¶
In the centralized model (e.g., SDN controller, see [RFC7149] and [RFC7426]), the C-SMA acts as an application that reports metrics to a centralized C-PS via a northbound interface. The PA adapts the metric cache to a northbound API whose concrete design is out of scope for this document; the following are common transport choices discussed in [I-D.yxl-cats-protocols-applicability]:¶
The PA MUST support transport security (e.g., TLS) for all northbound connections.¶
In the distributed model, the C-SMA distributes metrics via routing protocol extensions, as analyzed in [I-D.yxl-cats-protocols-applicability]. Whether and how CATS metrics are carried in BGP-LS, GRASP, or IGP TE extensions is a protocol design question that belongs to the corresponding protocol documents. This document does not specify such extensions.¶
The PA MUST implement protocol-specific rate limiting and dampening to prevent routing instability.¶
In the hybrid model, the C-SMA uses a combination of centralized and distributed mechanisms:¶
Static/Quasi-Static Metrics via Distributed Protocols: Infrequently changing metrics (e.g., maximum capacity, security levels) may be distributed via BGP-LS or GRASP where such encoding exists.¶
Dynamic/Status Metrics via Centralized Interface: Frequently changing metrics (e.g., GAS, Computing Time) are reported via the RESTful or gRPC northbound interface to avoid flooding the routing protocol.¶
The PA MUST ensure consistency between the two channels. If a conflict is detected (e.g., a distributed advertisement reports GAS=500 while the northbound interface reports GAS=400), the more recent update takes precedence.¶
The following items are intentionally not resolved in this document and need to be addressed by the protocol documents identified in [I-D.yxl-cats-protocols-applicability]:¶
The wire encoding of CATS metrics in BGP-LS, including TLV codepoints and their IANA registration.¶
The GRASP objective name and payload schema for CATS metrics, if GRASP is selected.¶
The applicability analysis for OSPF/IS-IS TE extensions.¶
The YANG data model objects for the thresholds and policies referenced in Section 7 (see [I-D.ietf-cats-data-model]).¶
The Policy Engine (PE) enforces local policies on metric reporting. Policies are expressed as rules with conditions and actions. Policies are configured via the CATS management plane and stored in a local policy database; the configuration objects should be mapped to the YANG data model of [I-D.ietf-cats-data-model] where applicable. The policy examples in this section use example thresholds and values, which MUST be configurable.¶
Rule Format: IF <condition> THEN <action>¶
Examples (values are examples, not defaults): IF Site_GAS < 100 THEN SET Security_Level = 5; IF SCI_Health = DEGRADED THEN REDUCE SCI_GAS BY 50%; IF Time IN Maintenance_Window THEN SUPPRESS_UPDATES; IF Price > 100 THEN SET Price = 100.¶
The PE evaluates policies in order of priority before metrics are sent to the C-PS.¶
The PE applies the following transformation policies:¶
The PE controls when updates are sent to the C-PS:¶
This section specifies the trust relationships that the C-SMA MUST maintain with its peers. The mechanisms listed below are examples of how the corresponding requirements can be met; the choice of mechanism is deployment-specific and MUST be consistent with the CATS security considerations discussed in [RFC10053]. The C-SMA MUST authenticate every SCI before accepting its reports. Supported methods include:¶
The C-SMA MUST maintain a certificate revocation list (CRL) or support OCSP to check for revoked certificates.¶
The C-SMA MUST authenticate the C-PS before sending updates. Supported methods:¶
The C-SMA MUST verify that the C-PS is authorized to receive the metrics for the advertised CS-IDs. This MAY be enforced via certificate attributes or policy configuration.¶
The C-SMA MUST protect the integrity of metric reports:¶
The Update Controller (UC) sends updates to the C-PS based on triggers and periodic synchronization.¶
The UC sends updates to the C-PS based on the following triggers. The behavior in this section, together with Section 9.2 and Section 9.3, defines the synchronization semantics that determine how fresh the C-PS's view of a service site is; the required update frequency and scope depend on the service class and are out of scope for this document (see the CATS charter and [I-D.zhangb-cats-service-metrics-op] for the corresponding discussion).¶
Metric Change Trigger: When an aggregated metric crosses a configured threshold, the UC sends a delta update.¶
Health Change Trigger: When an SCI changes health state (HEALTHY -> DEGRADED, DEGRADED -> UNHEALTHY, etc.), the UC sends an immediate update.¶
SCI Discovery Trigger: When a new SCI is discovered or an existing SCI is withdrawn, the UC sends a full update.¶
Policy Change Trigger: When a local policy is updated (e.g., new safety margin), the UC re-evaluates all metrics and sends updates as needed.¶
The UC MUST prioritize triggers. Critical triggers (e.g., health change) take precedence over routine triggers (e.g., metric change).¶
The UC sends periodic updates to maintain soft state:¶
After a C-PS restart or network partition, the C-SMA and C-PS MUST reconcile their state:¶
This section specifies the C-SMA-side behavior for detecting and responding to failures of its peers. The monitoring and management functions used to observe these failures (and the corresponding management interfaces) are in the scope of the OAM framework for CATS [I-D.ietf-cats-oam-fw]; this section defines only the C-SMA behavior that follows once a failure is detected. The C-SMA detects SCI failures through the following mechanisms:¶
Upon detecting an SCI failure, the C-SMA:¶
If the C-SMA cannot reach the C-PS:¶
During a network partition between the service site and the C-PS:¶
The C-SMA MUST be designed to scale with the number of SCIs and the frequency of metric updates:¶
The C-SMA is a critical trust anchor in the CATS architecture. Its compromise could lead to traffic misdirection or denial of service. The following security measures are REQUIRED:¶
This document has no IANA actions.¶
This document specifies the behavior of the C-SMA and deliberately does not define wire formats, TLVs, or protocol extensions for metric distribution (see Section 6). If, in a future revision, protocol encodings for CATS metrics are defined, the corresponding codepoint registrations will be requested in the document that defines the encoding, following the process of the IANA registry established for CATS metrics (see [I-D.ietf-cats-metric-definition-13]).¶
The authors thank the CATS working group for their valuable feedback and contributions to this document.¶