<?xml version="1.0" encoding="US-ASCII"?>
<rfc
    category="std"
    docName="draft-wang-service-information-yang-00"
    ipr="trust200902"
    consensus="true"
    submissionType="IETF">
  <?rfc toc="yes"?>

  <front>
    <title abbrev="Service Information YANG Model">A YANG Data Model for Service Information</title>
 
   <author fullname="Xuewei Wang" initials="X." surname="Wang">
      <organization>Ruijie Networks</organization>

      <address>
        <postal>
  
          <city>Beijing</city>
  
          <country>China</country>
        </postal>

        <email>wangxuewei1@ruijie.com.cn</email>
      </address>
    </author>

    <author fullname="Huijuan Yao" initials="H." surname="Yao">
      <organization>China Mobile</organization>

      <address>
        <postal>

          <city>Beijing</city>

          <country>China</country>
        </postal>

        <email>yaohuijuan@chinamobile.com</email>
      </address>
    </author>

    <author fullname="Zhiqiang Li" initials="Z." surname="Li">
      <organization>China Mobile</organization>

      <address>
        <postal>
          <street>No.32 XuanWuMen West Street</street>

          <city>Beijing</city>

          <code>100053</code>

          <country>China</country>
        </postal>

        <email>lizhiqiangyjy@chinamobile.com</email>
      </address>
    </author>

    <date/>
    <area>Routing</area>
    <keyword>bgp</keyword>
    <keyword>yang</keyword>

    <abstract>
      <t>Computing-Aware Traffic Steering (CATS) aims to solve the problem of how the network edge can steer traffic between clients of a service and sites offering the service. To achieve such scheduling, the network needs to aware the computing information of the service. This document defines a YANG data model for the computing information of the service for CATS.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="intro" title="Introduction">
      <t>Computing-Aware Traffic Steering (CATS) <xref target="I-D.ldbc-cats-framework"/> aims to solve the problem of how the network edge can steer traffic between clients of a service and sites offering the service. To achieve such scheduling, the network needs to aware the computing information of the service. The awareness methods are not limited to distributed, centralized, or hybrid<xref target="I-D.yao-cats-awareness-architecture"/>. This document defines a YANG data model for the computing information of the service transferring between the CATS-control center and the CATS-routers. Naturally, this data model could also be used for distributed solution.</t>

      <section anchor="diagram" title="Tree Diagram">
        <t>This section presents a simplified graphical representation of the computing information model using a YANG tree diagram<xref target="RFC8340"/>.</t> 

        <figure>
          <artwork><![CDATA[
    module: ietf-computing-information
        +--rw awareness
           +--rw computing-information
              +--rw service-instance      
                 +--rw service-ID   inet:ip-prefix    
                 +--rw service-domain-name   string
                 +--rw computing-energy-consumption   uint32
                 +--rw computing-cost   uint32
                 +--rw peak-value-of-available-computing   uint32
                 +--rw number-of-available-service-connections uint32   
                 +--rw CPU-performance uint16       
                 +--rw GPU-performance uint16      
                 +--rw NPU-performance uint16    
                 +--rw storage-capacity uint32      
                 +--rw service-delay uint32
      ]]></artwork>
        </figure>
      </section>
     </section>
     <section anchor="DataModel" title="Computing Information Data Model">
     <figure  align="center">
       <artwork align="center"><![CDATA[			
<CODE BEGINS> file "ietf-computing-information@2022-07-08.yang"
module ietf-computing-information {
  yang-version "1.1";
  namespace "urn:ietf:params:xml:ns:yang: ietf-computing-information";
  
  prefix computing-information;
  
  import ietf-inet-types {
    prefix inet ;
    revision-date 2013-07-15 ;
    reference "RFC 6991: Common YANG Data Types";
  }
  
  organization
    "IETF cats(Computing-Aware Traffic Steering)Working Group";

  contact
    "WG Web:   <http://datatracker.ietf.org/group/cats/>
     WG List:  <mailto:cats@ietf.org>

     Author:   Xuewei Wang
               <mailto:wangxuewei1@ruijie.com.cn>
     Author:   Huijuan Yao
               <mailto:yaohuijuan@chinamobile.com>
     Author:   Zhiqiang Li
               <mailto:lizhiqiangyjy@chinamobile.com> ";

  description
    "This document defines a YANG data model used for computing information awareness.

     Copyright (c) 2023 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;
     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 2022-05-11 {
    description 'First draft.'
                ;
    reference 'RFC XXXX: A YANG Data Model for Computing '
            + 'Information Awareness.'
                ;
  }  
 
  container awareness {
    description 'transferring of computing information of the service.'
                ;
    container computing-information {
      description 'computing information transferring.'
                  ;
      container service-instance {
        description 'computing information of a service instance.'
                    ;
           leaf service-ID { 
             type inet:ip-prefix; 
             description ' The ID of the service provided by the service instance '                       
                         ;
           }         
           leaf service-domain-name { 
             type string;
             description ' The domain name of the service provided by the service instance '                       
                         ;
           }
           leaf computing-energy-consumption { 
             type uint32
             description ' the value of computing energy consumption '                       
                         ;
           }
           leaf computing-cost { 
             type uint32
             description ' the comprehensive computing cost '                       
                         ;
           }
           leaf peak-value-of-available-computing { 
             type uint32
             description ' the peak value of available computing '                       
                         ;
           }
           leaf number-of-available-service-connections { 
             type uint32
             description ' the number of available service connections '                       
                         ;
           }
           leaf CPU-performance { 
             type uint16; 
             description ' the CPU utilization'                       
                         ;
           }
           leaf GPU-performance { 
             type uint16; 
             description ' the GPU utilization'                       
                         ;
           }
           leaf NPU-performance { 
             type uint16; 
             description ' the NPU utilization'                       
                         ;
           }
           leaf storage-capacity { 
             type uint32; 
             description ' The capacity of the storage '                       
                         ;
           }
           leaf service-delay { 
             type uint32; 
             description ' Service processing latency '                       
                         ;
        }
      } 
    }
  }
}
<CODE ENDS>
            ]]></artwork>
       <postamble></postamble>
      </figure> 
     </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include='reference.RFC.8340'?>
    </references>
    <references title="Informative References">
      <?rfc include='reference.I-D.ldbc-cats-framework'?>
      <?rfc include='reference.I-D.yao-cats-awareness-architecture'?>
      <?rfc ?>
    </references>
  </back>
</rfc>

