| Internet-Draft | CATS C-SMA Functional Implementation | July 2026 |
| Zhang | Expires 28 January 2027 | [Page] |
The Computing-Aware Traffic Steering (CATS) framework introduces 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 existing drafts define the metrics and high-level framework, the concrete functional behavior, internal architecture, and operational procedures of the C-SMA remain underspecified.¶
This document fills that gap by defining the functional implementation of the C-SMA. Specifically, it specifies how the C-SMA collects metrics from multiple Service Contact Instances (SCIs) within a service site; how it validates, and caches these metrics; how it adapts to various control-plane protocols for metric distribution; how it enforces local policies and security policies; and how it maintains synchronization with the C-PS under dynamic conditions. This document complements [I-D.ietf-cats-framework] and [I-D.zhangb-cats-service-metrics-op] by providing the operational execution layer for the C-SMA.¶
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 28 January 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 [I-D.ietf-cats-framework] 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 defines the functional implementation of the C-SMA to address these gaps. It specifies the internal architecture, metric collection and validation mechanisms, protocol adaptation, policy enforcement, and failure handling required for a C-SMA to operate effectively within the CATS framework.¶
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 (RESTful API, BGP-LS, GRASP, etc.).¶
Enforcing local policies (e.g., metric transformation, update throttling, security labels).¶
Authenticating SCIs and C-PSes, and protecting metric integrity.¶
Handling failures of SCIs, C-PSes, and network partitions.¶
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 [I-D.ietf-cats-framework] and [I-D.zhangb-cats-service-metrics-op]. 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.¶
Computing Time: The time required for the site to perform one service request.¶
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.¶
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.¶
A C-SMA is logically composed of the following internal functional components:¶
+----------------------------------------------------------------+
| CATS Service Metric Agent (C-SMA) |
| +----------------+ +------------------+ |
| | SCI Collection | | policy Engine | |
| | Interface (SI) |------------ | (PE) | |
| +--------+-------+ | +--------+---------+ |
| | | | |
| +--------v-------+ +--------v-------+ +------v-----------+ |
| | Metric Cache | | Validator & | | Update Controller| |
| | (MC) | | Sanitizer (VS) | | (UC) | |
| +--------+-------+ +--------+-------+ +------+-----------+ |
| | | | |
| +--------v-------------------v-------------------v----------+ |
| | Protocol Adapter (PA) | |
| +---------------------------+-------------------------------+ |
| | |
+------------------------------v----------------------------------+
|
+-------v--------+
| C-PS |
+----------------+
The internal components of a C-SMA are defined as follows:¶
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 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 | AR1 | 400 | 5 | HEALTHY |
| 188.3.67.3:68 | AR2 | 100 | 15 | HEALTHY |
| 188.3.67.4:69 | AR1 | 600 | 6 | HEALTHY |
| 188.3.67.4:70 | LLM1 | 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 C-SMA maintains a state machine for each SCI:¶
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) supports multiple control-plane protocols for different deployment models.¶
In the centralized model (e.g., SDN controller), the C-SMA acts as an application that reports metrics to a centralized C-PS via a northbound interface. The PA supports:¶
The PA MUST support TLS for all northbound connections.¶
In the distributed model, the C-SMA distributes metrics via routing protocol extensions. The PA supports:¶
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/Capability Metrics via Distributed Protocols: Infrequently changing metrics (e.g., maximum capacity, security labels) are distributed via BGP-LS or GRASP.¶
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., BGP-LS advertises GAS=500 while the REST API reports GAS=400), the more recent update takes precedence.¶
The Policy Engine (PE) enforces local policies on metric reporting. Policies are expressed as rules with conditions and actions.¶
Rule Format: IF <condition> THEN <action>¶
Examples: IF Site_GAS < 100 THEN SET Security_Label = 5; IF SCI_Health = DEGRADED THEN REDUCE SCI_GAS BY 50%; IF Time IN Maintenance_Window THEN SUPPRESS_UPDATES; IF Cost > 100 THEN SET Cost = 100.¶
Policies are configured via the CATS Management Plane (e.g., NETCONF, RESTCONF) and stored in a local policy database. 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:¶
The C-SMA MUST authenticate every SCI before accepting its reports. Supported methods:¶
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:¶
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:¶
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 at this time.¶
The authors thank the CATS working group for their valuable feedback and contributions to this document.¶