Skip to main content

Data Model for Computing-Aware Traffic Steering (CATS)
draft-ietf-cats-data-model-00

Document Type Active Internet-Draft (cats WG)
Authors Huijuan Yao , Changwang Lin , Zhenqiang Li , Quan Xiong , Luis M. Contreras
Last updated 2026-09-23
Replaces draft-yl-cats-data-model
RFC stream Internet Engineering Task Force (IETF)
Intended RFC status (None)
Formats
Yang Validation 0 errors, 0 warnings
Reviews
Additional resources Mailing list discussion
Stream WG state WG Document
Associated WG milestone
Nov 2027
Submit a data model for operating and managing CATS systems to the IESG for publication as Proposed Standard
Document shepherd (None)
IESG IESG state I-D Exists
Consensus boilerplate Unknown
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-ietf-cats-data-model-00
CATS Working Group                                                H. Yao
Internet-Draft                                              China Mobile
Intended status: Standards Track                                  C. Lin
Expires: 27 March 2027                              New H3C Technologies
                                                                   Z. Li
                                                            China Mobile
                                                                Q. Xiong
                                                         ZTE Corporation
                                                         L. M. Contreras
                                                              Telefonica
                                                       23 September 2026

         Data Model for Computing-Aware Traffic Steering (CATS)
                     draft-ietf-cats-data-model-00

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 March 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 March 2027                 [Page 1]
Internet-Draft          YANG Data Model for CATS          September 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  . . . . . . . . . . . . . . . . .  23
     5.1.  Installation and Configuration  . . . . . . . . . . . . .  23
     5.2.  Monitoring  . . . . . . . . . . . . . . . . . . . . . . .  23
     5.3.  Migration Considerations  . . . . . . . . . . . . . . . .  23
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .  23
   7.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  26
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  26
     8.1.  Normative References  . . . . . . . . . . . . . . . . . .  26
     8.2.  Informative References  . . . . . . . . . . . . . . . . .  27
   Appendix A.  Full Tree  . . . . . . . . . . . . . . . . . . . . .  28
   Contributors  . . . . . . . . . . . . . . . . . . . . . . . . . .  30
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  30

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 March 2027                 [Page 2]
Internet-Draft          YANG Data Model for CATS          September 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 March 2027                 [Page 3]
Internet-Draft          YANG Data Model for CATS          September 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 March 2027                 [Page 4]
Internet-Draft          YANG Data Model for CATS          September 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 March 2027                 [Page 5]
Internet-Draft          YANG Data Model for CATS          September 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 March 2027                 [Page 6]
Internet-Draft          YANG Data Model for CATS          September 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 March 2027                 [Page 7]
Internet-Draft          YANG Data Model for CATS          September 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 March 2027                 [Page 8]
Internet-Draft          YANG Data Model for CATS          September 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 March 2027                 [Page 9]
Internet-Draft          YANG Data Model for CATS          September 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 March 2027                [Page 10]
Internet-Draft          YANG Data Model for CATS          September 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

   <CODE BEGINS> 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 <mailto:cats@ietf.org>

Yao, et al.               Expires 27 March 2027                [Page 11]
Internet-Draft          YANG Data Model for CATS          September 2026

        Editor:  Huijuan Yao
                 <mailto:yaohuijuan@chinamobile.com>
        Editor:  Changwang Lin
                 <mailto:linchangwang.04414@h3c.com>
        Editor:  Zhenqiang Li
                 <mailto:lizhenqiang@chinamobile.com>
        Editor:  Quan Xiong
                 <mailto:xiong.quan@zte.com.cn>
        Editor:  Luis M. Contreras
                 <mailto:luismiguel.contrerasmurillo@telefonica.com>";

     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 March 2027                [Page 12]
Internet-Draft          YANG Data Model for CATS          September 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 March 2027                [Page 13]
Internet-Draft          YANG Data Model for CATS          September 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 March 2027                [Page 14]
Internet-Draft          YANG Data Model for CATS          September 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 March 2027                [Page 15]
Internet-Draft          YANG Data Model for CATS          September 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 March 2027                [Page 16]
Internet-Draft          YANG Data Model for CATS          September 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 {
                 length "0..255";
               }
               description
                 "A human-readable description of this service
                  (e.g., 'http', 'video-streaming'). The length
                  constraint provides a reasonable upper bound
                  for short descriptive text and avoids
                  unbounded-string risks. The value 255 follows
                  the historical SNMP SnmpAdminString convention
                  for management text. Note that length counts
                  Unicode characters, not UTF-8 octets.
                  Zero-length is permitted for empty descriptions.";
             }
             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

Yao, et al.               Expires 27 March 2027                [Page 17]
Internet-Draft          YANG Data Model for CATS          September 2026

                        <https://www.iana.org/assignments/
                        protocol-numbers/>";
             }
             leaf matched-packets {
               type yang:zero-based-counter64;
               config false;
               description
                 "The number of packets matching the specified
                  service.";
             }
             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.";

Yao, et al.               Expires 27 March 2027                [Page 18]
Internet-Draft          YANG Data Model for CATS          September 2026

               reference
                 "draft-ietf-cats-framework: A Framework for
                                             Computing-Aware Traffic
                                             Steering (CATS)";
             }
             leaf source-type {
               type identityref {
                 base source-type-base;
               }
               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.";

Yao, et al.               Expires 27 March 2027                [Page 19]
Internet-Draft          YANG Data Model for CATS          September 2026

               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
                      '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 {

Yao, et al.               Expires 27 March 2027                [Page 20]
Internet-Draft          YANG Data Model for CATS          September 2026

             type string {
               length "1..255";
             }
             mandatory true;
             description
               "A human-readable message describing the event,
                including the configured maximum limit.
                The length constraint provides a reasonable upper
                bound for short event messages and avoids
                unbounded-string risks. The value 255 follows the
                historical SNMP SnmpAdminString convention for
                management text. Note that length counts Unicode
                characters, not UTF-8 octets. Zero-length is
                disallowed since this notification always carries
                content.";
           }
         }
         notification metric-limit-recovered {
           description
             "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 {
               length "1..255";
             }
             mandatory true;
             description
               "A human-readable message describing the event,
                including the configured maximum limit.
                The length constraint provides a reasonable upper
                bound for short event messages and avoids
                unbounded-string risks. The value 255 follows the
                historical SNMP SnmpAdminString convention for
                management text. Note that length counts Unicode
                characters, not UTF-8 octets. Zero-length is
                disallowed since this notification always carries
                content.";
           }
         }
         notification flow-limit-exceeded {
           description

Yao, et al.               Expires 27 March 2027                [Page 21]
Internet-Draft          YANG Data Model for CATS          September 2026

             "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 {
               length "1..255";
             }
             mandatory true;
             description
               "A human-readable message describing the event,
                including the configured maximum limit.
                The length constraint provides a reasonable upper
                bound for short event messages and avoids
                unbounded-string risks. The value 255 follows the
                historical SNMP SnmpAdminString convention for
                management text. Note that length counts Unicode
                characters, not UTF-8 octets. Zero-length is
                disallowed since this notification always carries
                content.";
           }
         }
         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 {
               length "1..255";
             }
             mandatory true;
             description
               "A human-readable message describing the event,
                including the configured maximum limit.
                The length constraint provides a reasonable upper
                bound for short event messages and avoids
                unbounded-string risks. The value 255 follows the

Yao, et al.               Expires 27 March 2027                [Page 22]
Internet-Draft          YANG Data Model for CATS          September 2026

                historical SNMP SnmpAdminString convention for
                management text. Note that length counts Unicode
                characters, not UTF-8 octets. Zero-length is
                disallowed since this notification always carries
                content.";
           }
         }
       }
     }
   }
   <CODE ENDS>

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].

   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].

Yao, et al.               Expires 27 March 2027                [Page 23]
Internet-Draft          YANG Data Model for CATS          September 2026

   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

   *  /cats:service-metrics/cats:service-metric/cats:priority

Yao, et al.               Expires 27 March 2027                [Page 24]
Internet-Draft          YANG Data Model for CATS          September 2026

   *  /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.

   All the security considerations for writable and readable data nodes
   defined in [RFC8349] apply to the augmentations described herein.

Yao, et al.               Expires 27 March 2027                [Page 25]
Internet-Draft          YANG Data Model for CATS          September 2026

   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,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC3688]  Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
              DOI 10.17487/RFC3688, January 2004,
              <https://www.rfc-editor.org/info/rfc3688>.

   [RFC6020]  Bjorklund, M., Ed., "YANG - A Data Modeling Language for
              the Network Configuration Protocol (NETCONF)", RFC 6020,
              DOI 10.17487/RFC6020, October 2010,
              <https://www.rfc-editor.org/info/rfc6020>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

   [RFC8344]  Bjorklund, M., "A YANG Data Model for IP Management",
              RFC 8344, DOI 10.17487/RFC8344, March 2018,
              <https://www.rfc-editor.org/info/rfc8344>.

Yao, et al.               Expires 27 March 2027                [Page 26]
Internet-Draft          YANG Data Model for CATS          September 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,
              <https://www.rfc-editor.org/info/rfc8349>.

   [RFC8407]  Bierman, A., "Guidelines for Authors and Reviewers of
              Documents Containing YANG Data Models", RFC 8407,
              DOI 10.17487/RFC8407, October 2018,
              <https://www.rfc-editor.org/info/rfc8407>.

   [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,
              <https://www.rfc-editor.org/info/rfc8639>.

   [RFC8641]  Clemm, A. and E. Voit, "Subscription to YANG Notifications
              for Datastore Updates", RFC 8641, DOI 10.17487/RFC8641,
              September 2019, <https://www.rfc-editor.org/info/rfc8641>.

   [RFC9911]  Schoenwaelder, J., Ed., "Common YANG Data Types", RFC
              9911, DOI 10.17487/RFC9911, December 2025,
              <https://www.rfc-editor.org/info/rfc9911>.

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,
              <https://datatracker.ietf.org/doc/html/draft-ietf-cats-
              framework-24>.

   [RFC4252]  Ylonen, T. and C. Lonvick, Ed., "The Secure Shell (SSH)
              Authentication Protocol", RFC 4252, DOI 10.17487/RFC4252,
              January 2006, <https://www.rfc-editor.org/info/rfc4252>.

   [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,
              <https://www.rfc-editor.org/info/rfc6241>.

   [RFC8040]  Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF
              Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017,
              <https://www.rfc-editor.org/info/rfc8040>.

Yao, et al.               Expires 27 March 2027                [Page 27]
Internet-Draft          YANG Data Model for CATS          September 2026

   [RFC8340]  Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams",
              BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018,
              <https://www.rfc-editor.org/info/rfc8340>.

   [RFC8341]  Bierman, A. and M. Bjorklund, "Network Configuration
              Access Control Model", STD 91, RFC 8341,
              DOI 10.17487/RFC8341, March 2018,
              <https://www.rfc-editor.org/info/rfc8341>.

   [RFC8446]  Rescorla, E., "The Transport Layer Security (TLS) Protocol
              Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
              <https://www.rfc-editor.org/info/rfc8446>.

   [RFC9000]  Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based
              Multiplexed and Secure Transport", RFC 9000,
              DOI 10.17487/RFC9000, May 2021,
              <https://www.rfc-editor.org/info/rfc9000>.

   [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, <https://www.rfc-editor.org/info/rfc9907>.

Appendix A.  Full Tree

Yao, et al.               Expires 27 March 2027                [Page 28]
Internet-Draft          YANG Data Model for CATS          September 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 March 2027                [Page 29]
Internet-Draft          YANG Data Model for CATS          September 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 March 2027                [Page 30]