CATS Working Group                                               H. Yao
Internet Draft                                             China Mobile
Intended status: Standards Track                                 C. Lin
Expires: March 10, 2026                            New H3C Technologies
                                                                  Z. Li
                                                           China Mobile
                                                               Q. Xiong
                                                        ZTE Corporation
                                                        L. M. Contreras
                                                             Telefonica
                                                     September 11, 2025



           Data Model for Computing-Aware Traffic Steering (CATS)
                        draft-yl-cats-data-model-04


Abstract

   This document defines a YANG data model for the configuration and
   management of Computing-Aware Traffic Steering (CATS) framework.

   The YANG module defined in this document conforms to the Network
   Management Datastore Architecture (NMDA).

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 March 10, 2026.

Copyright Notice

   Copyright (c) 2025 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

yl, et al.             Expires March 10, 2026                 [Page 1]

Internet-Draft          YANG Data Model for CATS        September 2025


   (https://trustee.ietf.org/license-info) in effect on the date of
   publication of this document. Please review these documents
   carefully, as they describe your rights and restrictions with
   respect to this document. Code Components extracted from this
   document must include Revised BSD License text as described in
   Section 4.e of the Trust Legal Provisions and are provided without
   warranty as described in the Revised BSD License.



Table of Contents


   1. Introduction...................................................2
      1.1. Terminology...............................................3
      1.2. Conventions Used in This Document.........................3
      1.3. Tree Diagrams.............................................3
      1.4. Prefixes in Data Node Names...............................3
   2. Design of the Configuration Data Model.........................4
      2.1. Scope of Model............................................4
      2.2. Specification.............................................4
      2.3. Overview..................................................4
      2.4. CATS YANG Structure.......................................6
      2.5. CATS Control plane YANG Attributes........................8
         2.5.1. CATS base............................................8
         2.5.2. CATS traffic-classifier..............................9
         2.5.3. CATS service-metric..................................9
         2.5.4. CATS notify.........................................10
      2.6. CATS Forwarding plane YANG Attributes....................10
         2.6.1. CATS forwarding-paths...............................10
         2.6.2. CATS Flow Entry.....................................11
   3. CATS YANG Data model..........................................12
   4. Security Considerations.......................................21
   5. IANA Considerations...........................................21
   6. References....................................................21
      6.1. Normative References.....................................21
      6.2. Informative References...................................22
   Contributors.....................................................22
   Authors' Addresses...............................................23



1. Introduction

   [I-D.draft-ietf-cats-framework] introduces the framework definition
   of CATS. This document defines a YANG data model for CATS that can
   be used to configure and manage the CATS framework. This model
   imports and augments ietf-routing YANG model defined in [RFC8349].

yl, et al.             Expires March 10, 2026                 [Page 2]

Internet-Draft          YANG Data Model for CATS        September 2025


1.1. Terminology

   This document makes use of the terms as defined in [I-D.draft-ietf-
   cats-framework].

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.

             +------------+-------------------------+-------------------+
             | Prefix     | YANG module             | Reference         |
             +------------+-------------------------+-------------------+
             | if         | ietf-interfaces         | [RFC8343]         |
             | ip         | ietf-ip                 | [RFC8344]         |
             | cats       | ietf-cats               | Section 3         |
             | srv6-types | ietf-srv6-types         | [I-D.ietf-spring  |
             |            |                         |  -srv6-yang]      |
             | rt-types   | ietf-routing-types      | [RFC8294]         |
             | yang       | ietf-yang-types         | [RFC6991]         |
             | inet       | ietf-inet-types         | [RFC6991]         |
             +------------+-------------------------+-------------------+
                Table 1: Prefixes and Corresponding YANG Modules



yl, et al.             Expires March 10, 2026                 [Page 3]

Internet-Draft          YANG Data Model for CATS        September 2025


2. Design of the Configuration Data Model

2.1. Scope of Model

   The model covers CATS [I-D.ietf-cats-framework].

   This model can be used to configure and manage the CATS framework.

   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 protocol.  Depending on the implementation choices, some systems
   may not allow some of the advanced parameters to be configurable.

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

2.2. Specification

   This model imports and augments 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 YANG data model defined in this document conforms to the Network
   Management Datastore Architecture (NMDA) [RFC8342].  The operational
   state data is combined with the associated configuration data in the
   same hierarchy [RFC8407].

2.3. Overview

   As shown in Figure 1, the CATS framework structure consists of C-
   SMA, responsible for maintaining service metrics, C-NMA, responsible
   for maintaining network metrics, C-PS, responsible for maintaining
   forwarding table entries, and C-TC, responsible for traffic
   classification.

   C-CIB: CATS Computing Information Base, responsible for maintaining
      CATS network computing information, provides basic data for C-SMA.

   C-NIB: CATS Network Information Base, responsible for maintaining
      CATS network information, provides basic data for C-NMA.


yl, et al.             Expires March 10, 2026                 [Page 4]

Internet-Draft          YANG Data Model for CATS        September 2025


   CATS-SBI: It could be used to report computing metric information
      from CATS Forwarders to the Control Plane, and also could be used
      to send path and service policy information or service information
      from the Control Plane to CATS-Forwarders.

   C-SMA API: An extended interface between the Control Plane and the
      C-SMA or between CATS-Forwarders and service-instance, it is used
      to report service metric information to the Control Plane or CATS-
      Forwarders.


                 +----------------------------------+               +----------+
                 | Management                       |   C-SMA API   |          |
                 | Plane   +------+----------+      |<==============|   C-SMA  |
                 |         |      |          |      |               |          |
                 |         |   +--v---+   +--v---+  |               +------+---+
                 |         |   |C-CIB |   |C-NIB |  |                      |
                 |         |   +---^--+   +--^---+  |                      |
                 |         |       |         |      |                      |
                 +---------|-------|---------|------+                      |
                 | Control |   +---v--+   +--v---+  |                      |
                 | Plane   |   |C-SMA |   |C-NMA |  |                      |
                 |         |   +------+   +------+  |                      |
                 |         |                        |                      |
                 |         |   +-------+            |                      |
                 |         +-->| C-PS  |            |                      |
                 |             +-------+            |                      |
                 +----------------------------------+                      |
                    /\ CATS-SBI               /\ CATS-SBI                  |
                    ||                        || C-SMA API                 |
    CATS-Forwarder1 \/        CATS-Forwarder2 \/                           |
    +-------------------+     +--------------------------------+           |
    | Data     +------+ |     | Data    +-----+-------+        | C-SMA API +--------+
    | Plane    | C-TC | |     | Plane   |C-TC |  C-PS |        |<==========| +--------+
    |          +------+ |     |         +-----+---+---+        |           | |Service |
    |                   |     |                   |            |           | |Contact |
    +-------------------+     |                   |            |           +-|Instance|
                              |            +------+---+        |             +--------+
                              |            |          |        |                 |
                              |         +--+---+    +-+----+   |           +--------+
                              |         |C-SMA |    |C-NMA |   |           | +--------+
                              |         +------+    +------+   |           | |Service |
                              +--------------------------------+           +-|Instance|
                                                                             +--------+
                  Figure 1: CATS System Architecture




yl, et al.             Expires March 10, 2026                 [Page 5]

Internet-Draft          YANG Data Model for CATS        September 2025


2.4. CATS YANG Structure

   This document defines a YANG data model for the configuration and
   management of CATS corresponding data. The data model is applicable
   to CATS-SBI interface and C-SMA API interface.

   The CATS YANG is divided into two parts: the control-plane YANG data
   and the forwarding-plane YANG. The control-plane YANG includes basic
   YANG, traffic-classifier YANG, and service-metric YANG. The
   forwarding-plane YANG includes forwarding-paths YANG and flow YANG.

   o The CATS base table provides interfaces for the functionality of
      the C-PS component, which can be used for communication
      interfaces between the Control Plane and the C-SMA, as well as
      for interfaces between the Control Plane and the CATS-Forwarder.

   o The CATS traffic-classifier table provides interfaces for the
      functionality of the C-TC component, which can be used for
      interfaces between the Control Plane and the CATS-Forwarder.

   o The CATS service-metric table provides interfaces for the C-SMA
      component, which can be used for interfaces between the Control
      Plane and the CATS-Forwarder, as well as for transmitting service
      metrics 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.

   o The CATS notify table is used by the management layer component
      and can be utilized for the CATS-forwarder to report events to
      the Control Plane.

   o The CATS Forwarding-Path table and the CATS Flow-Entry table can
      be used as interfaces for the Control Plane to distribute
      forwarding table entries to the CATS Forwarder, and they can also
      be utilized for the CATS Forwarder to report traffic statistics
      information to the Control Plane.

   o The Control Plane can directly distribute specific CATS Flow-
      Entry to the CATS-Forwarder for guiding forwarding. It can also
      distribute CATS Forwarding-Path table and CATS traffic-classifier
      table to the CATS-Forwarder, allowing the CATS-Forwarder to
      proactively select paths according to forwarding policies and
      generate the CATS Flow-Entry table.

   The following is a tree representation of the CATS YANG:




yl, et al.             Expires March 10, 2026                 [Page 6]

Internet-Draft          YANG Data Model for CATS        September 2025


    module: ietf-cats
        +--rw cats
        |  +--rw base
        |  |  +--rw enable bool
        |  |  +--rw update-interval uint
        |  |  +--rw metric-limits   uint64
        |  |  +--rw flow-limits     uint64
        |  |  +--rw flow-timeout    uint
        |  |  +--rw service-policy
        |  |     +--rw cs-id        index, type cs-id
        |  |     +--rw policy-type  enumeration
        |  |
        |  +--rw traffic-classifiers
        |  |   +--rw traffic-classifier
        |  |      +--rw cs-id               index, type cs-id
        |  |      +--rw description         string
        |  |      +--rw server-port         ushort
        |  |      +--rw protocol            ushort
        |  |
        |  +--rw service-metrics
        |  |   +--rw service-metric
        |  |      +--rw cs-id               index, cs-id
        |  |      +--rw csci-id             index, csci-id
        |  |      +--rw source-type         index, uint
        |  |      +--rw priority            uint
        |  |      +--rw affinity            uint
        |  |      +--rw location            inet:ip-address
        |  |      +--rw metric
        |  |         +--metric-type         index, type uint
        |  |         +--metric              uint
        |  |
        |  +--rw forwarding-paths
        |  |   +--rw forwarding-path
        |  |      +--rw cs-id               index, type cs-id
        |  |      +--rw csci-id             index, type csci-id
        |  |      +--rw policy-type         enumeration
        |  |      +--rw weight              uint32
        |  |      +--rw forwarding-path-state
        |  |         +--rw path-id          index, type uint8
        |  |         +--rw next-hop-address inet:ip-address
        |  |         +--rw interface        if:interface
        |  |         +--rw dataplanetype
        |  |
        |  +--rw flow-entrys
        |  |     +--rw flow-entry
        |  |        +--rw source-address     index, inet:ip-address
        |  |        +--rw dest-address       index, inet:ip-address
        |  |        +--rw source-port        index, inet:ip-address

yl, et al.             Expires March 10, 2026                 [Page 7]

Internet-Draft          YANG Data Model for CATS        September 2025


        |  |        +--rw dest-port          index, inet:ip-address
        |  |        +--rw protocol           index, ushort
        |  |        +--rw forwarding-path
        |  |           +--rw cs-id           type cs-id
        |  |           +--rw csci-id         type csci-id
        |  |           +--rw affinity        type uint
        |  |           +--rw forwarding-path-state
        |  |              +--rw path-id          index, type uint8
        |  |              +--rw next-hop-address inet:ip-address
        |  |              +--rw interface        if:interface
        |  |              +--rw dataplanetype
        |  |
        |  |        +--ro flow-statistics
        |  |           +--ro pkts      uint64
        |  |           +--ro octets    uint64
        |  |
        |  +--n notify
        |  |     +--ro metric-limit-reached  boolean
        |  |     +--ro flow-limit-reached   boolean

                  Figure 2: Yang Organization and Hierarchy


2.5. CATS Control plane YANG Attributes

2.5.1. CATS base

        |  +--rw base
        |  |  +--rw enable          bool
        |  |  +--rw update-interval uint
        |  |  +--rw metric-limits   uint64
        |  |  +--rw flow-limits     uint64
        |  |  +--rw flow-timeout    uint
        |  |  +--rw service-policy
        |  |     +--rw cs-id        index, type cs-id
        |  |     +--rw policy-type  enumeration


                  Figure 3: Base configuration tree view



   In the base, you can set the "enable" attribute to enable/disable
   CATS function.




yl, et al.             Expires March 10, 2026                 [Page 8]

Internet-Draft          YANG Data Model for CATS        September 2025


   You can set the "cats-update-interval" parameter to determine the
   interval at which C-SMA notifies C-PS of metric changes. The default
   value for this interval is 30 seconds.

   You can set the maximum number of table entries by configuring
   "entry-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.

   You can set the service-policy table for traffic routing, which
   includes affinity-based, service-metric-based, network-metric-based,
   and combined service-metric and network-metric-based routing.

2.5.2. CATS traffic-classifier

        |  +--rw traffic-classifiers
        |  |   +--rw traffic-classifier
        |  |      +--rw cs-id               index,type cs-id
        |  |      +--rw description         string
        |  |      +--rw server-port         ushort
        |  |      +--rw protocol            ushort

                  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.

2.5.3. CATS service-metric

        |  +--rw service-metrics
        |  |   +--rw cats-service-metric
        |  |      +--rw cs-id               index, type cs-id
        |  |      +--rw csci-id             index, type csci-id
        |  |      +--rw source-type         index, source-type
        |  |      +--rw priority            uint
        |  |      +--rw affinity            uint
        |  |      +--rw location            inet:ip-address
        |  |      +--rw metric
        |  |         +--metric-type         index, type uint
        |  |         +--metric              uint


yl, et al.             Expires March 10, 2026                 [Page 9]

Internet-Draft          YANG Data Model for CATS        September 2025


                               Figure 5: Service-metric tree view


   The cats service-metric table is used to control the delivery
   service metrics on the control plane, thereby generating the
   forwarding table on the forwarding plane in conjunction with network
   metrics.

2.5.4. CATS notify

        |  +--n notify
        |  |     +--ro entry-limit-reached  boolean
        |  |     +--ro flow-limit-reached   boolean


                               Figure 6: Notify tree view


   When the number of cats table entries reaches the maximum and when
   the number of entries goes from maximum to not being maximum, a
   event notification will be sent indicating the change in the number
   of cats table entries reaching the maximum.

2.6. CATS Forwarding plane YANG Attributes

2.6.1. CATS forwarding-paths

        |  +--rw forwarding-paths
        |  |   +--rw forwarding-path
        |  |      +--rw cs-id               index, type cs-id
        |  |      +--rw csci-id             index, type csci-id
        |  |      +--rw policy-type         enumeration
        |  |      +--rw weight              uint32
        |  |      +--rw forwarding-path-state
        |  |         +--rw path-id          index, type uint8
        |  |         +--rw forwarding-path-info
        |  |            +--rw next-hop-address inet:ip-address
        |  |            +--rw interface        if:interface
        |  |            +--rw dataplanetype


                               Figure 7: Forwarding-path tree view





yl, et al.             Expires March 10, 2026                [Page 10]

Internet-Draft          YANG Data Model for CATS        September 2025


   The cats forwarding-paths table is used for forwarding service
   traffic on the data plane. In scenarios with multiple paths, load
   balancing can be achieved based on the assigned weights.

2.6.2. CATS Flow Entry

        |  +--rw flow-entrys
        |  |     +--rw flow-entry
        |  |        +--rw source-address     index, inet:ip-address
        |  |        +--rw dest-address       index, inet:ip-address
        |  |        +--rw source-port        index, inet:ip-address
        |  |        +--rw dest-port          index, inet:ip-address
        |  |        +--rw protocol           index, ushort
        |  |        +--rw forwarding-path
        |  |           +--rw cs-id           type cs-id
        |  |           +--rw csci-id         type csci-id
        |  |           +--rw affinity        type uint
        |  |           +--rw forwarding-path-info
        |  |              +--rw next-hop-address inet:ip-address
        |  |              +--rw interface        if:interface
        |  |              +--rw dataplanetype
        |  |
        |  |        +--ro flow-statistics
        |  |           +--ro pkts      uint64
        |  |           +--ro octets    uint64


                               Figure 8: Flow-entry tree view


   When there is service traffic, Ingress CATS-Forwarder maintains a
   flow table to guide the forwarding of this flow. If the flow table
   remains in a stale state for more than flow-timeout, it will be
   deleted. The flow table also includes statistical information
   related to this flow.













yl, et al.             Expires March 10, 2026                [Page 11]

Internet-Draft          YANG Data Model for CATS        September 2025



3. CATS YANG Data model

   <CODE BEGINS> file "ietf-cats@2024-06-20.yang"

   module ietf-cats {
      yang-version 1.1;
      namespace "urn:ietf:params:xml:ns:yang:ietf-cats";
      prefix cats;

      import ietf-inet-types {
         prefix inet;
         reference
            "RFC 6991: Common YANG Data Types";
      }

      import ietf-routing-types {
         prefix "rt-types";
         reference
            "RFC 8294: Common YANG Data Types for the Routing Area";
      }

      import ietf-srv6-types {
         prefix "srv6-types";
      }

      import ietf-interfaces {
         prefix if;
      }

      organization "IETF CATS";
      contact
         "WG Web:  <https://datatracker.ietf.org/group/cats/>
          WG List: <mailto:cats@ietf.org>
          Author:  Huijuan Yao
                   <mailto:yaohuijuan@chinamobile.com>
          Author:  Changwang Lin
                   <mailto:linchangwang.04414@h3c.com>
          Author:  Zhenqiang Li
                   <mailto:lizhenqiang@chinamobile.com>
          Author:  Quan Xiong
                   <mailto:xiong.quan@zte.com.cn>
          Author:  Luis M. Contreras
                   <mailto:luismiguel.contrerasmurillo@telefonica.com>
         ";

      description
           "This module describes a YANG model for CATS.

yl, et al.             Expires March 10, 2026                [Page 12]

Internet-Draft          YANG Data Model for CATS        September 2025


           This YANG model conforms to the Network Management
           Datastore Architecture (NMDA) as described in RFC 8342.

           Copyright (c) 2024 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).

           This version of this YANG module is part of RFC XXXX
           (https://www.rfc-editor.org/info/rfcXXXX);
           see the RFC itself for full legal notices.

           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.";

      revision 2024-06-20 {
         description
            "Initial Version";
         reference
            "RFC XXXX: YANG Data Model for CATS";
      }

      typedef cs-id {
         type union {
            type uint32;
            type inet:ipv4-address;
            type inet:ipv6-address;
         }
         description
           "This type is for CATS CS-ID.";
      }

      typedef csci-id {
         type union {
            type uint32;
            type inet:ipv4-address;
            type inet:ipv6-address;
         }
         description

yl, et al.             Expires March 10, 2026                [Page 13]

Internet-Draft          YANG Data Model for CATS        September 2025


           "This type is for CATS CSCI-ID.";
      }

      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-sm-nm {
                   value 2;
                   description "base on service metric and network
                   metric";
                }
             }
             description "service policy type";
         }
      }
      container base {
         description
           "CATS base configuration.";
         leaf enable {
             type boolean;
             description
               "enable CATS";
         }
         leaf update-interval {
            type uint32;
            description
              "update-interval of CATS metric";
         }
         leaf entry-limits {
            type uint64;
            description
              "CATS metric entry limit";
         }
         leaf flow-limits {
            type uint64;
            description
              "CATS flow entry limit";
         }

yl, et al.             Expires March 10, 2026                [Page 14]

Internet-Draft          YANG Data Model for CATS        September 2025


         leaf flow-timeout {
            type uint32;
            description
              "CATS flow timeout when no flow";
         }
         container service-policy {
            description
              "CATS sercice policy";
            leaf cs-id {
               type cs-id;
               description
                 "cs-id";
            }
            uses service-policy-type;
         }
      }

      container traffic-classifiers {
         description
           "CATS traffic-classifier feature";
         list traffic-classifier {
            key "cs-id";
            description
              "CATS traffic-classifier feature";
            leaf cs-id {
               type cs-id;
               description
                 "CATS CS-ID";
            }
            leaf description {
               type string;
               description
                 "description of this service, example: http";
            }
            leaf server-port {
               type uint16;
               description
                 "server-port of the service.";
            }
            leaf protocol {
               type uint16;
               description
                 "protocol of the service.";
            }
         }
      }

      container service-metrics {

yl, et al.             Expires March 10, 2026                [Page 15]

Internet-Draft          YANG Data Model for CATS        September 2025


         description
           "CATS service metric entry";
         list service-metric {
            key "cs-id csci-id source-type";
            description
              "CATS service metric entry";
            leaf cs-id {
               type cs-id;
               description
                 "CATS cs-id";
            }
            leaf csci-id {
               type csci-id;
               description
                 "CATS csci-id";
            }
            leaf source-type {
               type enumeration {
                  enum static {
                     value 0;
                     description "static configuration";
                  }
                  enum bgp {
                     value 1;
                     description "bgp protocol";
                  }
               }
               description
                 "source-type of the service-metric";
            }
            leaf priority {
               type uint32;
               description
                 "server priority";
            }
            leaf affinity {
               type uint32;
               description
                 "server affinity";
            }
            leaf location {
               type inet:ip-address;
               description
                 "server location";
            }
            container service-metric {
               description
                 "service metric";

yl, et al.             Expires March 10, 2026                [Page 16]

Internet-Draft          YANG Data Model for CATS        September 2025


               list metric {
                  key "metric-type";
                  description "Different types of service.";
                  leaf metric-type {
                     type enumeration {
                        enum delay {
                           value 0;
                           description " Calculate the metric based on
                           transmission delay, where the metric value
                           is the delay time in milliseconds.";
                        }
                        enum service-ratio {
                           value 1;
                           description "Calculate the metric based on
                           business capacity, where the metric value is
                           the current capacity percentage.";
                        }
                        enum memory-ratio {
                           value 2;
                           description " Calculate the metric based on
                           memory utilization percentage,  where the
                           metric value is the current memory
                           utilization percentage";
                        }
                     }
                     description "metric type";
                  }
                  leaf metric {
                     type uint32;
                     description "metric value";
                  }
               }
            }
         }
      }

      grouping mpls-label-stack {
         description
            "Grouping for MPLS label stack";

         list labels {
            key "index";
            description
               "Stack containing MPLS labels";

            leaf index {
               type uint32;
               description "A unique ID of an MPLS label in labels

yl, et al.             Expires March 10, 2026                [Page 17]

Internet-Draft          YANG Data Model for CATS        September 2025


               list";
            }
            leaf label {
               type rt-types:mpls-label;
               description
                 "MPLS label value";
            }
         }
      }

      grouping srv6-sid-stack {
         description
          "Grouping for SRv6 label stack";

         list sids {
           key "index";
           description
             "Stack containing SRv6 SIDs";

           leaf index {
              type uint32;
              description "A unique ID of an SRv6 sid in sid list";
           }
           leaf sid {
              type srv6-types:srv6-sid;
              description
                "SRv6 sid value";
           }
         }
      }
      grouping path-forwarding-info {
         description
          "cats forwarding path information";

         leaf next-hop-address {
            type inet:ip-address;
            description "Nexthop address";
         }
         leaf interface {
            type if:interface-ref;
            description "Outgoing interface handle";
         }
         container sid-list {
            description
              "Outgoing sid stack";
            choice dataplanetype {
               description
                 "Outgoing sids dataplane choice";

yl, et al.             Expires March 10, 2026                [Page 18]

Internet-Draft          YANG Data Model for CATS        September 2025


               case mpls {
                 uses mpls-label-stack;
               }
               case srv6 {
                  uses srv6-sid-stack;
               }
            }
         }
      }

      container forwarding-paths {
         description
           "Forwarding state of paths";
         list forwarding-path {
            key "cs-id csci-id";
            description "Forwarding state of paths";
            leaf cs-id {
               type cs-id;
               description "CATS cs-id";
            }
            leaf csci-id {
               type csci-id;
               description "CATS csci-id";
            }
            uses service-policy-type;
            leaf weight {
               type uint32;
               description "Path's weight for W-ECMP balancing";
            }
            list forwarding-path-state {
              key "path-id";
              description "CATS Forwarding path state";
              leaf path-id {
                  type uint8;
                  description "Primary path id";
               }
               uses path-forwarding-info;
            }
         }
     }

     container flow-entrys {
        description "flow entry";
        list flow-entry {
           key "source-address dest-address source-port dest-port
                protocol";
           description "flow entry";
           leaf source-address {

yl, et al.             Expires March 10, 2026                [Page 19]

Internet-Draft          YANG Data Model for CATS        September 2025


              type inet:ip-address;
              description "source address of flow";
           }
           leaf dest-address {
              type inet:ip-address;
              description "destination address of flow";
           }
           leaf source-port {
              type uint16;
              description "source port of flow";
           }
           leaf dest-port {
              type uint16;
              description "destination port of flow";
           }
           leaf protocol {
              type uint16;
              description "protocol of flow";
           }
           leaf cs-id {
              type cs-id;
              description "CATS cs-id";
           }
           leaf csci-id {
              type csci-id;
              description "CATS csci-id";
           }
           leaf affinity {
              type uint32;
              description "affinity";
           }
           uses path-forwarding-info;
           container flow-statistics {
              description "flow statistics";
              leaf pkts {
                 type uint64;
                 description "pkts";
              }
              leaf octets {
                 type uint64;
                 description "octets";
              }
           }
        }
      }

      container notify {
         description "event notify";

yl, et al.             Expires March 10, 2026                [Page 20]

Internet-Draft          YANG Data Model for CATS        September 2025


         leaf entry-limit-reached {
            type boolean;
            description "entry limit reached";
         }
         leaf flow-limit-reached {
            type boolean;
            description "flow entry limit reached";
         }
      }
   }
   <CODE ENDS>

4. Security Considerations

   TBD

5. IANA Considerations

   TBD

6. References

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

   [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", RFC
             6991, DOI 10.17487/RFC6991, July 2013, <https://www.rfc-
             editor.org/info/rfc6991>.

   [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language",
             RFC 7950, DOI 10.17487/RFC7950, August 2016,
             <https://www.rfc-editor.org/info/rfc7950>.

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

   [RFC8294] Liu, X., Qu, Y., Lindem, A., Hopps, C., and L. Berger,
             "Common YANG Data Types for the Routing Area", RFC 8294,
             DOI 10.17487/RFC8294, December 2017, <https://www.rfc-
             editor.org/rfc/rfc8294>.




yl, et al.             Expires March 10, 2026                [Page 21]

Internet-Draft          YANG Data Model for CATS        September 2025


   [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
             and R. Wilton, "Network Management Datastore Architecture
             (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018,
             <https://www.rfc-editor.org/info/rfc8342>.

   [RFC8343] Bjorklund, M., "A YANG Data Model for Interface
             Management", RFC 8343, DOI 10.17487/RFC8343, March 2018,
             <https://www.rfc-editor.org/info/rfc8343>.

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

   [I-D.ietf-spring-srv6-yang]

             Raza, S. K., Agarwal, S., Liu, X., Hu, Z., Hussain, I.,
             Shah, H. C., Voyer, D., Elmalky, H., Matsushima, S.,
             Horiba, K., Rajamanickam, J., and A. Abdelsalam, "YANG
             Data Model for SRv6 Base and Static", Work in Progress,
             Internet-Draft, draft-ietf-spring-srv6-yang-05, 7 July
             2025, <https://datatracker.ietf.org/doc/html/draft-ietf-
             spring-srv6-yang-05>.

6.2. Informative References

   [I-D.draft-ietf-cats-framework] C. Li.,Z. Du.,M. Boucadair.,L. M.
             Contreras., J. Drake., " A Framework for Computing-Aware
             Traffic Steering (CATS)", draft-ietf-cats-framework-
             13(work in progress), September 2025.

   [RFC7895] Bierman, A., Bjorklund, M., and K. Watsen, "YANG Module
             Library", RFC 7895, DOI 10.17487/RFC7895, June 2016,
             <https://www.rfc-editor.org/info/rfc7895>.

   [RFC7951] Lhotka, L., "JSON Encoding of Data Modeled with YANG", RFC
             7951, DOI 10.17487/RFC7951, August 2016, <https://www.rfc-
             editor.org/info/rfc7951>.

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



Contributors

   TBD


yl, et al.             Expires March 10, 2026                [Page 22]

Internet-Draft          YANG Data Model for CATS        September 2025


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

















yl, et al.             Expires March 10, 2026                [Page 23]

