CATS Working Group H. Yao Internet-Draft China Mobile Intended status: Standards Track C. Lin Expires: 27 February 2027 New H3C Technologies Z. Li China Mobile Q. Xiong ZTE Corporation L. M. Contreras Telefonica 26 August 2026 Data Model for Computing-Aware Traffic Steering (CATS) draft-yl-cats-data-model-08 Abstract This document defines a YANG data model for the management of Computing-Aware Traffic Steering (CATS) systems. Status of This Memo 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 27 February 2027. Copyright Notice 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 Yao, et al. Expires 27 February 2027 [Page 1] Internet-Draft YANG Data Model for CATS August 2026 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. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 2 1.2. Conventions Used in This Document . . . . . . . . . . . . 3 1.3. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 3 1.4. Prefixes in Data Node Names . . . . . . . . . . . . . . . 3 2. CATS System Overview . . . . . . . . . . . . . . . . . . . . 4 3. Design of CATS Data Model . . . . . . . . . . . . . . . . . . 5 3.1. Scope of Model . . . . . . . . . . . . . . . . . . . . . 5 3.2. Specification . . . . . . . . . . . . . . . . . . . . . . 6 3.3. Model Structure . . . . . . . . . . . . . . . . . . . . . 6 3.3.1. CATS Base . . . . . . . . . . . . . . . . . . . . . . 7 3.3.2. CATS Traffic-classifier . . . . . . . . . . . . . . . 8 3.3.3. CATS Service-metric . . . . . . . . . . . . . . . . . 9 3.3.4. CATS Notify . . . . . . . . . . . . . . . . . . . . . 10 4. CATS YANG Module . . . . . . . . . . . . . . . . . . . . . . 11 5. Operational Considerations . . . . . . . . . . . . . . . . . 22 5.1. Installation and Configuration . . . . . . . . . . . . . 22 5.2. Monitoring . . . . . . . . . . . . . . . . . . . . . . . 22 5.3. Migration Considerations . . . . . . . . . . . . . . . . 22 6. Security Considerations . . . . . . . . . . . . . . . . . . . 22 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 25 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 25 8.1. Normative References . . . . . . . . . . . . . . . . . . 25 8.2. Informative References . . . . . . . . . . . . . . . . . 26 Appendix A. Full Tree . . . . . . . . . . . . . . . . . . . . . 27 Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 29 1. Introduction [I-D.ietf-cats-framework] introduces a framework for Computing-Aware Traffic Steering (CATS). This document defines a YANG data model for managing the CATS system. The model extends the "ietf-routing" YANG model defined in [RFC8349], is agnostic to specific protocol extensions, and conforms to the framework definition to serve as a critical diagnostic or control mechanism. 1.1. Terminology The following terms as defined in [I-D.ietf-cats-framework] are used: * CS-ID: CATS Service ID. Yao, et al. Expires 27 February 2027 [Page 2] Internet-Draft YANG Data Model for CATS August 2026 * CSCI-ID: CATS Service Contact Instance ID. * C-SMA: CATS Service Metric Agent. * C-NMA: CATS Network Metric Agent. * C-PS: CATS Path Selector. * C-TC: CATS Traffic Classifier. The new defined terms: * C-CIB: CATS Computing Information Base, as shown in Figure 1, responsible for maintaining CATS network computing information. Provides basic data for the C-SMA. * C-NIB: CATS Network Information Base, as shown in Figure 1, responsible for maintaining CATS network information. Provides basic data for the C-NMA. 1.2. Conventions Used in This Document 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. 1.3. Tree Diagrams Tree diagrams used in this document follow the notation defined in [RFC8340]. 1.4. Prefixes in Data Node Names In this document, names of data nodes, actions, and other data model objects are often used without a prefix, as long as it is clear from the context in which YANG module each name is defined. Otherwise, names are prefixed using the standard prefix associated with the corresponding YANG module, as shown in Table 1. Yao, et al. Expires 27 February 2027 [Page 3] Internet-Draft YANG Data Model for CATS August 2026 +========+=================+===========+ | Prefix | YANG module | Reference | +========+=================+===========+ | ip | ietf-ip | [RFC8344] | +--------+-----------------+-----------+ | rt | ietf-routing | [RFC8349] | +--------+-----------------+-----------+ | cats | ietf-cats | Section 3 | +--------+-----------------+-----------+ | yang | ietf-yang-types | [RFC9911] | +--------+-----------------+-----------+ | inet | ietf-inet-types | [RFC9911] | +--------+-----------------+-----------+ Table 1: Prefixes and Corresponding YANG Modules 2. CATS System Overview As defined in [I-D.ietf-cats-framework], the CATS framework structure consists of the C-SMA (responsible for maintaining service metrics), the C-NMA (responsible for maintaining network metrics), the C-PS (responsible for maintaining forwarding table entries), and the C-TC (responsible for traffic classification), as shown in Figure 1. The C-CIB and C-NIB are defined in the management plane. Yao, et al. Expires 27 February 2027 [Page 4] Internet-Draft YANG Data Model for CATS August 2026 +----------------------------------+ +-------+ | Management | | | | Plane +------+----------+ |<=========>| C-SMA | | | | | | | | | | +--v---+ +--v---+ | +--+----+ | | |C-CIB | |C-NIB | | | | | +---^--+ +--^---+ | | | | | | | | +---------|-------|---------|------+ | | Control | +---v--+ +--v---+ | | | Plane | |C-SMA | |C-NMA | | | | | +------+ +------+ | | | | | | | | +-------+ | | | +-->| C-PS | | | | +-------+ | | +----------------------------------+ | /\ /\ | || || | \/ \/ | +----------------+ +-----------------------+ | |CATS Forwarder1 | |CATS Forwarder2 | | | +------+ | | +------+------+ | +--------+ | | C-TC | | | | C-TC | C-PS | |<=========>| +--------+ | +------+ | | +------+--+---+ | | |Service | | | | | | | |Contact | +----------------+ | | | +-|Instance| | +---+---+ | +--------+ | | | | | | +---+--+ +--+--+ | +--------+ | |C-SMA | |C-NMA| | | +--------+ | +------+ +-----+ | | |Service | +-----------------------+ +-|Instance| +--------+ Figure 1: CATS System Architecture 3. Design of CATS Data Model 3.1. Scope of Model The model covers CATS systems as described in [I-D.ietf-cats-framework]. This model can be used to manage CATS systems. Yao, et al. Expires 27 February 2027 [Page 5] Internet-Draft YANG Data Model for CATS August 2026 The operational state data and statistics can be retrieved by this model. The subscription and push mechanism defined in [RFC8639] and [RFC8641] can be implemented by the user to subscribe to notifications on the data nodes in this model. The model contains all the basic configuration parameters to operate the CATS system. Depending on the implementation choices, some systems might not allow some of the advanced parameters to be configurable. Occasionally-implemented parameters are modeled as optional features in this model. This model can be extended, and it has been structured in a way that such extensions can be conveniently made. 3.2. Specification This model imports from and augments the "ietf-routing" YANG model defined in [RFC8349]. Both configuration branch and state branch of [RFC8349] are augmented. The configuration branch covers node base and policy configuration. The container 'cats' is the top level container in this data model. The operational state data is combined with the associated configuration data in the same hierarchy [RFC8407]. 3.3. Model Structure This document defines a YANG data model for the management of CATS corresponding data. The data model is applicable to the CATS system architecture in Figure 1. The CATS YANG model includes basic CATS objects, traffic-classifier objects, and service-metric objects. The model also includes YANG notifications. * The CATS base table provides interfaces for the functionality of the C-PS component, which can be used for communication between the Control Plane and the C-SMA, as well as for the interface between the Control Plane and the CATS Forwarder. * The CATS traffic-classifier table provides interfaces for the functionality of the C-TC component, which can be used for communication between the Control Plane and the CATS Forwarder. The Control Plane can distribute directly CATS traffic-classifier table to the CATS Forwarder, allowing the CATS Forwarder to proactively select paths according to forwarding policies. Yao, et al. Expires 27 February 2027 [Page 6] Internet-Draft YANG Data Model for CATS August 2026 * The CATS service-metric table provides interfaces for the C-SMA component, which can be used for communication between the Control Plane and the CATS Forwarder, as well as for transmitting service metric information from the C-SMA to the Control Plane. It is also used for forwarding service metric information from the Control Plane to the CATS Forwarder. * The CATS notification definitions are used by the management layer component and can be utilized for the CATS Forwarder to report events to the Control Plane. The full tree diagram of the "ietf-cats" YANG module is provided in Appendix A. And the Figure 2 is overall tree structure of the CATS YANG module: module: ietf-cats augment /rt:routing: +--rw cats +--rw base | ... | +--rw traffic-classifiers | ... | +--rw service-metrics | ... | +---n metric-limit-exceeded | ... +---n metric-limit-recovered | ... +---n flow-limit-exceeded | ... +---n flow-limit-recovered ... Figure 2: Yang Organization and Hierarchy 3.3.1. CATS Base Yao, et al. Expires 27 February 2027 [Page 7] Internet-Draft YANG Data Model for CATS August 2026 +--rw base | +--rw enable? boolean | +--rw update-interval? uint32 | +--rw metric-limits? uint32 | +--rw flow-limits? uint32 | +--rw flow-timeout? uint32 | +--rw notify-interval? uint32 | +--rw service-policy* [cs-id] | +--rw cs-id cs-id | +--rw policy-type? enumeration Figure 3: Base Configuration Tree View In the base shown in Figure 3, you can set the 'enable' attribute to enable/disable CATS function on a per-device basis. When set to false, the CATS function component is shut down. You can set the 'update-interval' parameter to determine the interval at which the C-SMA notifies the C-PS of metric changes. The default value for this interval is 30 seconds. You can set the maximum number of metric table entries by configuring 'metric-limits'. You can set the maximum number of flow tables by configuring 'flow- limits'. When flow tables have been inactive for a long period of time, it is necessary to age out the stale state entries. This can be achieved by configuring 'flow-timeout' to control the aging time of flow tables. To prevent notification flooding when limits are reached and unreached in quick succession (flapping), you can configure 'notify- interval' to set the minimum time between consecutive notifications. The default value is 10 seconds. You can set the 'service-policy' table for traffic steering, which includes affinity-based, service-metric-based, network-metric-based, and combined service-metric and network-metric-based steering. 3.3.2. CATS Traffic-classifier Yao, et al. Expires 27 February 2027 [Page 8] Internet-Draft YANG Data Model for CATS August 2026 +--rw traffic-classifiers | +--rw traffic-classifier* [cs-id] | +--rw cs-id cs-id | +--rw description? string | +--rw server-port? uint16 | +--rw protocol? uint8 | +--ro matched-packets? yang:zero-based-counter64 | +--ro matched-bytes? yang:zero-based-counter64 Figure 4: Traffic-classifier Tree View The CATS traffic-classifier table is used to define the features of the service and to classify the traffic, as shown in Figure 4. The 'cs-id' is used to uniquely identify a CATS service, and the 'description' serves to document its content. The 'server-port' defines the application port for a CATS service. This port number matches the destination port in the IP packets of data flows destined for the service. The 'protocol' defines the application transport protocol for a CATS service. This protocol number matches the protocol in the IP packets of data flows destined for the service. The 'matched-packets' and 'matched-bytes' indicate the statistics of traffic matching the specified service. 3.3.3. CATS Service-metric +--rw service-metrics | +--rw service-metric* [cs-id csci-id source-type] | +--rw cs-id cs-id | +--rw csci-id csci-id | +--rw source-type identityref | +--rw priority? uint8 | +--rw affinity? uint8 | +--rw location? inet:ip-address | +--rw metrics | | +--rw metric* [metric-type] | | +--rw metric-type identityref | | +--rw metric-value? uint32 | +--ro forwarded-packets? yang:zero-based-counter64 | +--ro forwarded-bytes? yang:zero-based-counter64 Figure 5: Service-metric Tree View Yao, et al. Expires 27 February 2027 [Page 9] Internet-Draft YANG Data Model for CATS August 2026 The CATS service-metric table is used to control the delivery service metrics on the control plane, as shown in Figure 5, thereby generating the forwarding table on the forwarding plane in conjunction with network metrics. The 'cs-id' is used to uniquely identify a CATS service, and the 'csci-id' is used to represent an instance of that service. The 'source-type' indicates the source protocol of this service metric information, such as a static protocol. The 'priority' indicates the priority of different service instances of the same service, and the 'affinity' indicates the affinity between this service and its service site. The 'location' indicates the IP address of the service site where this service instance resides. And the 'metrics' indicates different types of service metric values. The 'forwarded-packets' and 'forwarded-bytes' indicate the statistics of traffic forwarded by the specified service metric entry. 3.3.4. CATS Notify +---n metric-limit-exceeded | +--ro timestamp yang:date-and-time | +--ro message string +---n metric-limit-recovered | +--ro timestamp yang:date-and-time | +--ro message string +---n flow-limit-exceeded | +--ro timestamp yang:date-and-time | +--ro message string +---n flow-limit-recovered +--ro timestamp yang:date-and-time +--ro message string Figure 6: Notify Tree View Four notifications are defined to alert operators when metric or flow entry limits are exceeded or recovered: * metric-limit-exceeded: Sent when the number of metric entries exceeds the configured maximum. * metric-limit-recovered: Sent when the number of metric entries returns to or falls below the configured maximum. Yao, et al. Expires 27 February 2027 [Page 10] Internet-Draft YANG Data Model for CATS August 2026 * flow-limit-exceeded: Sent when the number of flow entries exceeds the configured maximum. * flow-limit-recovered: Sent when the number of flow entries returns to or falls below the configured maximum. Each notification carries a timestamp indicating when the event occurred and a human-readable message that includes the configured maximum limit, as shown in Figure 6. Having separate notifications for each event type allows operators to better parse and route specific events. To prevent notification flooding caused by rapid state changes (flapping), the 'notify-interval' parameter in the base configuration can be used to set the minimum time between consecutive notifications. 4. CATS YANG Module file "ietf-cats@2026-06-25.yang" module ietf-cats { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-cats"; prefix cats; import ietf-routing { prefix rt; reference "RFC 8349: A YANG Data Model for Routing Management (NMDA Version)"; } import ietf-inet-types { prefix inet; reference "RFC 9911: Common YANG Data Types, Section 4"; } import ietf-yang-types { prefix yang; reference "RFC 9911: Common YANG Data Types, Section 3"; } organization "IETF Computing-Aware Traffic Steering (CATS) Working Group"; contact "WG Web: https://datatracker.ietf.org/group/cats WG List: CATS Yao, et al. Expires 27 February 2027 [Page 11] Internet-Draft YANG Data Model for CATS August 2026 Editor: Huijuan Yao Editor: Changwang Lin Editor: Zhenqiang Li Editor: Quan Xiong Editor: Luis M. Contreras "; description "This module describes a YANG model for managing the CATS system. 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 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here. Copyright (c) 2026 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Revised BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). All revisions of IETF and IANA published modules can be found at the YANG Parameters registry group (https://www.iana.org/assignments/yang-parameters). This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; revision 2026-06-25 { description "Initial Version"; reference "RFC XXXX: YANG Data Model for CATS"; } typedef cs-id { type union { type uint32; Yao, et al. Expires 27 February 2027 [Page 12] Internet-Draft YANG Data Model for CATS August 2026 type inet:ipv4-address; type inet:ipv6-address; } description "This type defines the CATS Service ID (CS-ID), which uniquely identifies a service."; reference "draft-ietf-cats-framework: A Framework for Computing-Aware Traffic Steering (CATS)"; } typedef csci-id { type union { type uint32; type inet:ipv4-address; type inet:ipv6-address; } description "This type defines the CATS Service Contact Instance ID (CSCI-ID), which uniquely identifies a service contact instance."; reference "draft-ietf-cats-framework: A Framework for Computing-Aware Traffic Steering (CATS)"; } /* * Identities for source-type */ identity source-type-base { description "Base identity for source types of service computing metrics."; } identity source-type-static { base source-type-base; description "Static configuration. This identity is used when the service metric information is configured statically (not learned from a dynamic protocol)."; } /* * Identities for metric-type */ identity metric-type-base { description "Base identity for service metric types."; Yao, et al. Expires 27 February 2027 [Page 13] Internet-Draft YANG Data Model for CATS August 2026 } identity metric-delay { base metric-type-base; description "Transmission delay metric. The metric value is the delay time in milliseconds."; } identity metric-service-ratio { base metric-type-base; description "Service capacity ratio metric. The metric value is the current capacity percentage."; } identity metric-memory-ratio { base metric-type-base; description "Memory utilization metric. The metric value is the current memory utilization percentage."; } grouping service-policy-type { description "Service policy type"; leaf policy-type { type enumeration { enum base-on-affinity { value 0; description "Base on affinity"; } enum base-on-sm-only { value 1; description "Base on service metric only"; } enum base-on-nm-only { value 2; description "Base on network metric only"; } enum base-on-sm-nm { value 3; description "Base on the combination of service metric and network metric"; } } description "Service policy type"; Yao, et al. Expires 27 February 2027 [Page 14] Internet-Draft YANG Data Model for CATS August 2026 } } augment "/rt:routing" { description "This augments the CATS configuration."; container cats { description "Support for the CATS configuration."; container base { description "CATS base configuration."; leaf enable { type boolean; description "Enable CATS"; } leaf update-interval { type uint32; units "seconds"; default "30"; description "Update interval of CATS metric. A value of 0 indicates that metrics are sent only when a significant change occurs and not on a periodic basis."; } leaf metric-limits { type uint32; description "The maximum number of metric table entries that can be maintained by the device. This limit prevents resource exhaustion. The actual maximum value is implementation-dependent and should be documented by the vendor. A value of 0 indicates no configured limit (subject to device capacity)."; } leaf flow-limits { type uint32; description "The maximum number of flow table entries that can be maintained by the device. This limit prevents resource exhaustion. The actual maximum value is implementation-dependent and should be documented by the vendor. A value of 0 indicates no configured limit (subject to device capacity)."; } leaf flow-timeout { Yao, et al. Expires 27 February 2027 [Page 15] Internet-Draft YANG Data Model for CATS August 2026 type uint32; units "seconds"; default "120"; description "CATS flow timeout when no flow. A value of 0 means that the flow does not time out due to inactivity (i.e., infinite timeout), and must be terminated explicitly (e.g., via signaling or administrative action)."; } leaf notify-interval { type uint32; units "seconds"; default "10"; description "The minimum interval between consecutive notifications. This is used to prevent notification flooding when limits are reached and unreached in quick succession (flapping). A value of 0 means notifications are sent immediately without rate limiting."; } list service-policy { key "cs-id"; description "CATS service policy configuration for traffic steering. Each entry defines the policy type for a specific service identified by cs-id."; leaf cs-id { type cs-id; description "The CATS Service ID (CS-ID) that uniquely identifies a service. This identifier is used by clients to access the service."; reference "draft-ietf-cats-framework: A Framework for Computing-Aware Traffic Steering (CATS)"; } uses service-policy-type; } } container traffic-classifiers { description "CATS traffic-classifier entries for classifying traffic by service. Each entry defines the matching criteria for a specific service identified by cs-id."; list traffic-classifier { Yao, et al. Expires 27 February 2027 [Page 16] Internet-Draft YANG Data Model for CATS August 2026 key "cs-id"; description "A traffic classifier entry for a specific service. The cs-id uniquely identifies the service to be classified."; leaf cs-id { type cs-id; description "The CATS Service ID (CS-ID) that uniquely identifies a service."; reference "draft-ietf-cats-framework: A Framework for Computing-Aware Traffic Steering (CATS)"; } leaf description { type string; description "A human-readable description of this service (e.g., 'http', 'video-streaming')."; } leaf server-port { type uint16; description "Server-port of the service, matches the destination port in the IP packets of data flows destined for the service."; } leaf protocol { type uint8; description "The IP protocol number of the service. This value matches the protocol field in the IP header of data flows destined for the service. Common values include: 6 (Transmission Control Protocol), 17 (User Datagram Protocol), and 132 (Stream Control Transmission Protocol)."; reference "IANA: Protocol Numbers Registry "; } leaf matched-packets { type yang:zero-based-counter64; config false; description "The number of packets matching the specified service."; Yao, et al. Expires 27 February 2027 [Page 17] Internet-Draft YANG Data Model for CATS August 2026 } leaf matched-bytes { type yang:zero-based-counter64; config false; description "The number of bytes in packets matching the specified service."; } } } container service-metrics { description "CATS service metric entries for controlling delivery of service metrics from the control plane to the forwarding plane."; list service-metric { key "cs-id csci-id source-type"; description "A service metric entry for a specific service instance. The combination of cs-id, csci-id, and source-type uniquely identifies a service metric entry."; leaf cs-id { type cs-id; description "The CATS Service ID (CS-ID) that uniquely identifies a service."; reference "draft-ietf-cats-framework: A Framework for Computing-Aware Traffic Steering (CATS)"; } leaf csci-id { type csci-id; description "The CATS Service Contact Instance ID (CSCI-ID) that uniquely identifies a specific service contact instance."; reference "draft-ietf-cats-framework: A Framework for Computing-Aware Traffic Steering (CATS)"; } leaf source-type { type identityref { base source-type-base; } Yao, et al. Expires 27 February 2027 [Page 18] Internet-Draft YANG Data Model for CATS August 2026 description "The source type of the service computing metric. Indicates how the metric information was learned. The base identity 'source-type-base' can be extended by other modules to define additional source types."; } leaf priority { type uint8; description "The server priority. The smaller the value, the higher the priority (i.e., 0 is the highest priority). This convention follows common practice in networking protocols (e.g., IP precedence, administrative distance)."; } leaf affinity { type uint8; description "The server affinity. The higher the value, the higher the affinity (i.e., 0 is the lowest affinity). This convention follows common practice for affinity or weight metrics in load balancing."; } leaf location { type inet:ip-address; description "The IPv4 or IPv6 address of the service site where this service contact instance resides. This address represents the logical location of the service in the network topology. CATS-enabled routers use this location information to compute network distances and make steering decisions based on proximity to the service instance."; } container metrics { description "Service metrics for the service contact instance. Each metric entry carries a metric type and its associated value."; list metric { key "metric-type"; description "A service metric of a specific type."; leaf metric-type { type identityref { base metric-type-base; } description "The type of the service metric. The base identity Yao, et al. Expires 27 February 2027 [Page 19] Internet-Draft YANG Data Model for CATS August 2026 'metric-type-base' can be extended by other modules to define additional metric types."; reference "draft-ietf-cats-metric-definition: CATS Metrics Definition"; } leaf metric-value { type uint32; description "The value of the service metric."; } } } leaf forwarded-packets { type yang:zero-based-counter64; config false; description "The number of packets forwarded by the specified service"; } leaf forwarded-bytes { type yang:zero-based-counter64; config false; description "The number of bytes in packets forwarded by the specified service"; } } } notification metric-limit-exceeded { description "Event notification sent when the number of metric entries exceeds the configured maximum limit."; leaf timestamp { type yang:date-and-time; mandatory true; description "The time when the metric limit was exceeded."; } leaf message { type string; mandatory true; description "A human-readable message describing the event, including the configured maximum limit."; } } notification metric-limit-recovered { description Yao, et al. Expires 27 February 2027 [Page 20] Internet-Draft YANG Data Model for CATS August 2026 "Event notification sent when the number of metric entries returns to or falls below the configured maximum limit after having exceeded it."; leaf timestamp { type yang:date-and-time; mandatory true; description "The time when the metric limit was recovered."; } leaf message { type string; mandatory true; description "A human-readable message describing the event, including the configured maximum limit."; } } notification flow-limit-exceeded { description "Event notification sent when the number of flow entries exceeds the configured maximum limit."; leaf timestamp { type yang:date-and-time; mandatory true; description "The time when the flow limit was exceeded."; } leaf message { type string; mandatory true; description "A human-readable message describing the event, including the configured maximum limit."; } } notification flow-limit-recovered { description "Event notification sent when the number of flow entries returns to or falls below the configured maximum limit after having exceeded it."; leaf timestamp { type yang:date-and-time; mandatory true; description "The time when the flow limit was recovered."; } leaf message { type string; Yao, et al. Expires 27 February 2027 [Page 21] Internet-Draft YANG Data Model for CATS August 2026 mandatory true; description "A human-readable message describing the event, including the configured maximum limit."; } } } } } 5. Operational Considerations This section provides operational considerations for implementing and deploying the CATS YANG data model. 5.1. Installation and Configuration When deploying the CATS YANG model, operators should configure the 'update-interval' parameter to balance responsiveness against control plane load. The 'metric-limits' and 'flow-limits' parameters should be set based on expected service scale and available device resources. 5.2. Monitoring The CATS YANG model provides read-only state data nodes for monitoring: 'matched-packets' and 'matched-bytes' for traffic classification statistics, and 'forwarded-packets' and 'forwarded- bytes' for service forwarding statistics. The 'notify-interval' parameter helps prevent notification flooding during unstable conditions. 5.3. Migration Considerations CATS can be incrementally deployed alongside traditional forwarding. The CATS model augments the ietf-routing model without replacing it, allowing for gradual migration. 6. Security Considerations This section is modeled after the template described in Section 3.7.1 of [RFC9907]. Yao, et al. Expires 27 February 2027 [Page 22] Internet-Draft YANG Data Model for CATS August 2026 The "ietf-cats" YANG module defines a data model that is designed to be accessed via YANG-based management protocols, such as the Network Configuration Protocol (NETCONF) [RFC6241] and RESTCONF [RFC8040]. These YANG-based management protocols (1) have to use a secure transport layer (e.g., Secure Shell (SSH) [RFC4252], TLS [RFC8446], and QUIC [RFC9000]) and (2) have to use mutual authentication. The Network Configuration Access Control Model (NACM) [RFC8341] provides the means to restrict access for particular NETCONF or RESTCONF users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content. There are a number of data nodes defined in this YANG module that are writable/creatable/deletable (i.e., "config true", which is the default). All writable data nodes are likely to be sensitive or vulnerable in some network environments. Write operations (e.g., edit-config) and delete operations to these data nodes without proper protection or authentication can have a negative effect on network operations. The following subtrees and data nodes have particular sensitivities/vulnerabilities: * /cats:base/cats:enable * /cats:base/cats:update-interval * /cats:base/cats:metric-limits * /cats:base/cats:flow-limits * /cats:base/cats:flow-timeout * /cats:base/cats:service-policy/cats:cs-id * /cats:base/cats:service-policy/cats:policy-type * /cats:traffic-classifiers/cats:traffic-classifier/cats:cs-id * /cats:traffic-classifiers/cats:traffic-classifier/cats:description * /cats:traffic-classifiers/cats:traffic-classifier/cats:server-port * /cats:traffic-classifiers/cats:traffic-classifier/cats:protocol * /cats:service-metrics/cats:service-metric/cats:cs-id * /cats:service-metrics/cats:service-metric/cats:csci-id * /cats:service-metrics/cats:service-metric/cats:source-type Yao, et al. Expires 27 February 2027 [Page 23] Internet-Draft YANG Data Model for CATS August 2026 * /cats:service-metrics/cats:service-metric/cats:priority * /cats:service-metrics/cats:service-metric/cats:affinity * /cats:service-metrics/cats:service-metric/cats:location * /cats:service-metrics/cats:service- metric/cats:metrics/cats:metric/cats:metric-type * /cats:service-metrics/cats:service- metric/cats:metrics/cats:metric/cats:metric-value For these augmentations to ietf-routing.yang, the ability to delete, add, and modify CATS base configuration, traffic classifier configuration and service metric configuration would allow traffic to be misrouted. Some of the readable data nodes in this YANG module may be considered sensitive or vulnerable in some network environments. It is thus important to control read access (e.g., via get, get-config, or notification) to these data nodes. Specifically, the following subtrees and data nodes have particular sensitivities/ vulnerabilities: * /cats:traffic-classifiers/cats:traffic-classifier/cats:matched- packets * /cats:traffic-classifiers/cats:traffic-classifier/cats:matched- bytes * /cats:service-metrics/cats:service-metric/cats:forwarded-packets * /cats:service-metrics/cats:service-metric/cats:forwarded-bytes * /cats:metric-limit-exceeded * /cats:metric-limit-recovered * /cats:flow-limit-exceeded * /cats:flow-limit-recovered Exposing the notification will expose the CATS table information of the network device. This may be undesirable due to the fact that such exposure may facilitate other attacks. Additionally, network operators MAY consider their CATS table information to be sensitive confidential data. Yao, et al. Expires 27 February 2027 [Page 24] Internet-Draft YANG Data Model for CATS August 2026 All the security considerations for writable and readable data nodes defined in [RFC8349] apply to the augmentations described herein. There are no particularly sensitive RPC or action operations. 7. IANA Considerations The IANA is requested to assign the following URI in the "IETF XML Registry" [RFC3688]: URI: urn:ietf:params:xml:ns:yang:ietf-cats Registrant Contact: The IESG. XML: N/A; the requested URI is an XML namespace. This document registers the following YANG module in the "YANG Module Names" registry [RFC6020]: Name: ietf-cats Maintained by IANA? N Namespace: urn:ietf:params:xml:ns:yang:ietf-cats Prefix: cats Reference: RFC XXXX 8. References 8.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, DOI 10.17487/RFC3688, January 2004, . [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)", RFC 6020, DOI 10.17487/RFC6020, October 2010, . [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, . [RFC8344] Bjorklund, M., "A YANG Data Model for IP Management", RFC 8344, DOI 10.17487/RFC8344, March 2018, . Yao, et al. Expires 27 February 2027 [Page 25] Internet-Draft YANG Data Model for CATS August 2026 [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for Routing Management (NMDA Version)", RFC 8349, DOI 10.17487/RFC8349, March 2018, . [RFC8407] Bierman, A., "Guidelines for Authors and Reviewers of Documents Containing YANG Data Models", RFC 8407, DOI 10.17487/RFC8407, October 2018, . [RFC8639] Voit, E., Clemm, A., Gonzalez Prieto, A., Nilsen-Nygaard, E., and A. Tripathy, "Subscription to YANG Notifications", RFC 8639, DOI 10.17487/RFC8639, September 2019, . [RFC8641] Clemm, A. and E. Voit, "Subscription to YANG Notifications for Datastore Updates", RFC 8641, DOI 10.17487/RFC8641, September 2019, . [RFC9911] Schoenwaelder, J., Ed., "Common YANG Data Types", RFC 9911, DOI 10.17487/RFC9911, December 2025, . 8.2. Informative References [I-D.ietf-cats-framework] Li, C., Du, Z., Boucadair, M., Contreras, L. M., and J. Drake, "A Framework for Computing-Aware Traffic Steering (CATS)", Work in Progress, Internet-Draft, draft-ietf- cats-framework-24, 2 April 2026, . [RFC4252] Ylonen, T. and C. Lonvick, Ed., "The Secure Shell (SSH) Authentication Protocol", RFC 4252, DOI 10.17487/RFC4252, January 2006, . [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., and A. Bierman, Ed., "Network Configuration Protocol (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, . [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, . Yao, et al. Expires 27 February 2027 [Page 26] Internet-Draft YANG Data Model for CATS August 2026 [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, . [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration Access Control Model", STD 91, RFC 8341, DOI 10.17487/RFC8341, March 2018, . [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, . [RFC9000] Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based Multiplexed and Secure Transport", RFC 9000, DOI 10.17487/RFC9000, May 2021, . [RFC9907] Bierman, A., Boucadair, M., Ed., and Q. Wu, "Guidelines for Authors and Reviewers of Documents Containing YANG Data Models", BCP 216, RFC 9907, DOI 10.17487/RFC9907, March 2026, . Appendix A. Full Tree Yao, et al. Expires 27 February 2027 [Page 27] Internet-Draft YANG Data Model for CATS August 2026 module: ietf-cats augment /rt:routing: +--rw cats +--rw base | +--rw enable? boolean | +--rw update-interval? uint32 | +--rw metric-limits? uint32 | +--rw flow-limits? uint32 | +--rw flow-timeout? uint32 | +--rw notify-interval? uint32 | +--rw service-policy* [cs-id] | +--rw cs-id cs-id | +--rw policy-type? enumeration +--rw traffic-classifiers | +--rw traffic-classifier* [cs-id] | +--rw cs-id cs-id | +--rw description? string | +--rw server-port? uint16 | +--rw protocol? uint8 | +--ro matched-packets? yang:zero-based-counter64 | +--ro matched-bytes? yang:zero-based-counter64 +--rw service-metrics | +--rw service-metric* [cs-id csci-id source-type] | +--rw cs-id cs-id | +--rw csci-id csci-id | +--rw source-type identityref | +--rw priority? uint8 | +--rw affinity? uint8 | +--rw location? inet:ip-address | +--rw metrics | | +--rw metric* [metric-type] | | +--rw metric-type identityref | | +--rw metric-value? uint32 | +--ro forwarded-packets? yang:zero-based-counter64 | +--ro forwarded-bytes? yang:zero-based-counter64 +---n metric-limit-exceeded | +--ro timestamp yang:date-and-time | +--ro message string +---n metric-limit-recovered | +--ro timestamp yang:date-and-time | +--ro message string +---n flow-limit-exceeded | +--ro timestamp yang:date-and-time | +--ro message string +---n flow-limit-recovered +--ro timestamp yang:date-and-time +--ro message string Yao, et al. Expires 27 February 2027 [Page 28] Internet-Draft YANG Data Model for CATS August 2026 Contributors TBD Authors' Addresses Huijuan Yao China Mobile No.32 XuanWuMen West Street Beijing 100053 China Email: yaohuijuan@chinamobile.com Changwang Lin New H3C Technologies Beijing China Email: linchangwang.04414@h3c.com Zhenqiang Li China Mobile China Email: lizhenqiang@chinamobile.com Quan Xiong ZTE Corporation Email: xiong.quan@zte.com.cn Luis M. Contreras Telefonica Spain Email: luismiguel.contrerasmurillo@telefonica.com Yao, et al. Expires 27 February 2027 [Page 29]