Cisco-IOS-XR-telemetry-model-driven-cfg

This module contains a collection of YANG definitions for Cisco IOS-XR telemetry-model-driven package configuration. This model...

  • Version: 2020-12-11

    Cisco-IOS-XR-telemetry-model-driven-cfg@2020-12-11


    
      module Cisco-IOS-XR-telemetry-model-driven-cfg {
    
        yang-version 1;
    
        namespace
          "http://cisco.com/ns/yang/Cisco-IOS-XR-telemetry-model-driven-cfg";
    
        prefix telemetry-model-driven-cfg;
    
        import ietf-inet-types {
          prefix inet;
        }
        import Cisco-IOS-XR-types {
          prefix xr;
        }
        import cisco-semver {
          prefix semver;
        }
    
        organization "Cisco Systems, Inc.";
    
        contact
          "Cisco Systems, Inc.
         Customer Service
         
         Postal: 170 West Tasman Drive
         San Jose, CA 95134
         
         Tel: +1 800 553-NETS
         
         E-mail: cs-yang@cisco.com";
    
        description
          "This module contains a collection of YANG definitions
         for Cisco IOS-XR telemetry-model-driven package configuration.
         
         This model is deprecated and is replaced by
         Cisco-IOS-XR-um-telemetry-model-driven-cfg.yang which will provide the
         compatible functionalities.
         
         This module contains definitions
         for the following management objects:
           telemetry-model-driven: Model Driven Telemetry configuration
         
         Copyright (c) 2013-2020 by Cisco Systems, Inc.
         All rights reserved.";
    
        revision "2020-12-11" {
          description
            "Added length restriction to tls-hostname IosSetYangSchemaRev Cisco-IOS-XR-telemetry-model-driven-cfg";
        }
    
        revision "2020-04-09" {
          description
            "Added back default value of MDT_DEF_UDP_MTU to UDP packetsize to solve nbc issue.
           2020-01-30
           Added compression option to protocol.
           2020-01-07
           Added default statement to leaves max-containers-per-path, max-sensor-paths, and tcp-send-timeout.
           2019-10-09
           Added select-leaves-on-events config leaf
           2019-09-25
           Added minimum-cadence and cadence-factor options for tgtdef
           2019-09-01
           Add capability to configure a Fully Qualified Domain Name as destination.";
        }
    
        revision "2019-08-29" {
          description
            "Removed mandatory statement of leaf sample-interval.";
        }
    
        revision "2019-05-12" {
          description
            "Deprecated the native model, replaced by UM model.";
        }
    
        revision "2019-04-05" {
          description
            "Establish semantic version baseline.";
        }
    
        revision "2018-07-23" {
          description
            "Changed no-tls to presence leaf";
        }
    
        revision "2018-05-29" {
          description
            "Added include empty values.";
        }
    
        revision "2018-04-02" {
          description
            "Added strict-timer option";
        }
    
        revision "2018-01-17" {
          description
            "Changed mandatory field for sample-interval.";
        }
    
        revision "2017-09-26" {
          description
            "Added tcp-send-timeout to model";
        }
    
        revision "2017-09-07" {
          description
            "Fixed type translation error.";
        }
    
        revision "2017-08-23" {
          description
            "Updated version for max-containers-per-path";
        }
    
        revision "2017-05-01" {
          description
            "Fixing backward compatibility error in module.";
        }
    
        revision "2017-02-09" {
          description "Added DSCP";
        }
    
        revision "2017-01-30" {
          description
            "Updated version for source-interface/vrf";
        }
    
        revision "2016-10-20" {
          description
            "Updated version for hierarchy-destinations";
        }
    
        revision "2015-11-09" {
          description "IOS XR 6.0 revision.";
        }
    
        semver:module-version "2.0.0";
        semver:module-version "1.2.0";
        semver:module-version "1.1.0";
        semver:module-version "1.0.0";
    
        typedef Proto-type {
          type enumeration {
            enum "grpc" {
              value 1;
              description "GRPC";
            }
            enum "tcp" {
              value 2;
              description "tcp";
            }
            enum "udp" {
              value 3;
              description "udp";
            }
          }
          description "Proto type";
        }
    
        typedef Encode-type {
          type enumeration {
            enum "gpb" {
              value 2;
              description "GPB";
            }
            enum "self-describing-gpb" {
              value 3;
              description "SELF DESCRIBING GPB";
            }
            enum "json" {
              value 4;
              description "JSON";
            }
          }
          description "Encode type";
        }
    
        typedef Mdt-dscp-value {
          type enumeration {
            enum "default" {
              value 0;
              description
                "Applicable to DSCP: bits 000000";
            }
            enum "cs1" {
              value 8;
              description
                "Applicable to DSCP: bits 001000";
            }
            enum "af11" {
              value 10;
              description
                "Applicable to DSCP: bits 001010";
            }
            enum "af12" {
              value 12;
              description
                "Applicable to DSCP: bits 001100";
            }
            enum "af13" {
              value 14;
              description
                "Applicable to DSCP: bits 001110";
            }
            enum "cs2" {
              value 16;
              description
                "Applicable to DSCP: bits 010000";
            }
            enum "af21" {
              value 18;
              description
                "Applicable to DSCP: bits 010010";
            }
            enum "af22" {
              value 20;
              description
                "Applicable to DSCP: bits 010100";
            }
            enum "af23" {
              value 22;
              description
                "Applicable to DSCP: bits 010110";
            }
            enum "cs3" {
              value 24;
              description
                "Applicable to DSCP: bits 011000";
            }
            enum "af31" {
              value 26;
              description
                "Applicable to DSCP: bits 011010";
            }
            enum "af32" {
              value 28;
              description
                "Applicable to DSCP: bits 011100";
            }
            enum "af33" {
              value 30;
              description
                "Applicable to DSCP: bits 011110";
            }
            enum "cs4" {
              value 32;
              description
                "Applicable to DSCP: bits 100000";
            }
            enum "af41" {
              value 34;
              description
                "Applicable to DSCP: bits 100010";
            }
            enum "af42" {
              value 36;
              description
                "Applicable to DSCP: bits 100100";
            }
            enum "af43" {
              value 38;
              description
                "Applicable to DSCP: bits 100110";
            }
            enum "cs5" {
              value 40;
              description
                "Applicable to DSCP: bits 101000";
            }
            enum "ef" {
              value 46;
              description
                "Applicable to DSCP: bits 101110";
            }
            enum "cs6" {
              value 48;
              description
                "Applicable to DSCP: bits 110000";
            }
            enum "cs7" {
              value 56;
              description
                "Applicable to DSCP: bits 111000";
            }
          }
          description "Mdt dscp value";
        }
    
        typedef Mdt-compression {
          type enumeration {
            enum "gzip" {
              value 1;
              description
                "google.golang.org/grpc/encoding/gzip
               compression";
            }
          }
          description "Mdt compression";
        }
    
        typedef Address-family {
          type enumeration {
            enum "ipv4" {
              value 1;
              description "IPv4 address family";
            }
            enum "ipv6" {
              value 2;
              description "IPv6 address family";
            }
          }
          description "Address family";
        }
    
        grouping ENCODING {
          description
            "Common node of ipv6-destination, ipv4-destination
           , destination";
          leaf encoding {
            type Encode-type;
            description
              "Encoding used to transmit telemetry data to the
             collector";
          }
        }  // grouping ENCODING
    
        grouping PROTOCOL {
          description
            "Common node of ipv6-destination, ipv4-destination
           , destination";
          container protocol {
            presence
              "Indicates a protocol node is configured.";
            description
              "Transport Protocol used to transmit telemetry
             data to the collector";
            leaf protocol {
              type Proto-type;
              mandatory true;
              description "protocol";
            }
    
            leaf tls-hostname {
              type xr:Cisco-ios-xr-string {
                length "1..255";
              }
              description "tls hostname";
            }
    
            leaf no-tls {
              type empty;
              description "no tls";
            }
    
            leaf packetsize {
              type uint32 {
                range "484..65507";
              }
              default "1472";
              description "udp packetsize";
            }
    
            leaf compression {
              type Mdt-compression;
              description
                "gRPC message compression";
            }
          }  // container protocol
        }  // grouping PROTOCOL
    
        container telemetry-model-driven {
          status deprecated;
          description
            "This model is deprecated and is replaced by
           Cisco-IOS-XR-um-telemetry-model-driven-cfg.yang
           which will provide the compatible functionalities
           .  Model Driven Telemetry configuration";
          container sensor-groups {
            description
              "Sensor group configuration";
            list sensor-group {
              key "sensor-group-identifier";
              description
                "Sensor group configuration";
              container sensor-paths {
                description
                  "Sensor path configuration";
                list sensor-path {
                  key "telemetry-sensor-path";
                  description
                    "Sensor path configuration";
                  leaf telemetry-sensor-path {
                    type string;
                    description "Sensor Path";
                  }
                }  // list sensor-path
              }  // container sensor-paths
    
              leaf sensor-group-identifier {
                type xr:Cisco-ios-xr-string;
                description
                  "The identifier for this group";
              }
            }  // list sensor-group
          }  // container sensor-groups
    
          container subscriptions {
            description
              "Streaming Telemetry Subscription";
            list subscription {
              key "subscription-identifier";
              description
                "Streaming Telemetry Subscription";
              container sensor-profiles {
                description
                  "Associate Sensor Groups with Subscription";
                list sensor-profile {
                  key "sensorgroupid";
                  description
                    "Associate Sensor Group with Subscription";
                  leaf strict-timer {
                    type empty;
                    description
                      "use strict timer";
                  }
    
                  leaf sample-interval {
                    type uint32 {
                      range "0..4294967295";
                    }
                    units "millisecond";
                    description
                      "Sample interval in milliseconds";
                  }
    
                  leaf heartbeat-always {
                    type empty;
                    description
                      "Send heartbeat even if events have occurred
                     within interval";
                  }
    
                  leaf heartbeat-interval {
                    type uint32 {
                      range "1..4294967295";
                    }
                    units "millisecond";
                    description
                      "ON-CHANGE subscription heartbeat interval
                     (in milliseconds)";
                  }
    
                  leaf sensorgroupid {
                    type xr:Cisco-ios-xr-string;
                    description
                      "Reference to the telemetry sensor group name";
                  }
                }  // list sensor-profile
              }  // container sensor-profiles
    
              container destination-profiles {
                description
                  "Associate Destination Groups with Subscription";
                list destination-profile {
                  key "destination-id";
                  description
                    "Associate Destination Group with Subscription";
                  leaf destination-id {
                    type xr:Cisco-ios-xr-string;
                    description
                      "Destination Id to associate with
                     Subscription";
                  }
                }  // list destination-profile
              }  // container destination-profiles
    
              leaf source-qos-marking {
                type Mdt-dscp-value;
                description
                  "Outgoing DSCP value";
              }
    
              leaf source-interface {
                type xr:Interface-name;
                description
                  "Source address to use for streaming telemetry
                 information";
              }
    
              leaf subscription-identifier {
                type xr:Cisco-ios-xr-string;
                description
                  "Subscription identifier string";
              }
            }  // list subscription
          }  // container subscriptions
    
          container gnmi {
            description "GNMI Subscribe";
            leaf heartbeat-always {
              type empty;
              description
                "Send heartbeat even if events have occurred
               within interval";
            }
          }  // container gnmi
    
          container include {
            description
              "Include fields with empty values in output.";
            container empty {
              description
                "Include fields with empty values in output.";
              leaf values {
                type empty;
                description
                  "String type fields with empty string value,
                 for example, are omitted by default. This
                 provides an option to override this behavior
                 and include them in the output.";
              }
            }  // container empty
    
            leaf select-leaves-on-events {
              type empty;
              description
                "Include only configured leaves on on-change
               subscription";
            }
          }  // container include
    
          container destination-groups {
            description
              "Destination Group configuration";
            list destination-group {
              key "destination-id";
              description "Destination Group";
              container ipv6-destinations {
                description
                  "Destination address configuration";
                list ipv6-destination {
                  key "ipv6-address destination-port";
                  description
                    "destination IP address";
                  leaf ipv6-address {
                    type inet:ipv6-address-no-zone;
                    description
                      "Destination IPv6 address";
                  }
    
                  leaf destination-port {
                    type xr:Cisco-ios-xr-port-number;
                    description
                      "Destination port";
                  }
    
                  uses ENCODING;
    
                  uses PROTOCOL;
                }  // list ipv6-destination
              }  // container ipv6-destinations
    
              container ipv4-destinations {
                description
                  "Destination address configuration";
                list ipv4-destination {
                  key "ipv4-address destination-port";
                  description
                    "destination IP address";
                  leaf ipv4-address {
                    type inet:ipv4-address-no-zone;
                    description
                      "Destination IPv4 address";
                  }
    
                  leaf destination-port {
                    type xr:Cisco-ios-xr-port-number;
                    description
                      "Destination port";
                  }
    
                  uses ENCODING;
    
                  uses PROTOCOL;
                }  // list ipv4-destination
              }  // container ipv4-destinations
    
              container destinations {
                description
                  "Stream destinations information such as IP
                 address or FQDN (Fully Qualified Domain Name)
                 and port, transport protocol, and encoding.";
                list destination {
                  key "address port";
                  description
                    "Stream destinations";
                  leaf address-family {
                    type Address-family;
                    description
                      "Specify the desired address family for the
                     returned addresses from DNS. This is
                     applicable only if FQDN is specified as
                     destination address.";
                  }
    
                  leaf address {
                    type xr:Cisco-ios-xr-string {
                      length "1..128";
                    }
                    description
                      "Destination address as fully qualified
                     domain name, IPv4 address in dotted-quad
                     notation, or IPv6 address in full, mixed,
                     shortened, and shortened-mixed notation.";
                  }
    
                  leaf port {
                    type xr:Cisco-ios-xr-port-number;
                    description
                      "Destination port";
                  }
    
                  uses ENCODING;
    
                  uses PROTOCOL;
                }  // list destination
              }  // container destinations
    
              leaf vrf {
                type xr:Cisco-ios-xr-string {
                  length "1..32";
                }
                description
                  "Vrf for the destination group";
              }
    
              leaf destination-id {
                type xr:Cisco-ios-xr-string;
                description
                  "destination group id string";
              }
            }  // list destination-group
          }  // container destination-groups
    
          container gnmi-target-defined {
            description
              "Minimum cadence and cadence factor for gnmi
             target defined";
            leaf minimum-cadence {
              type uint32 {
                range "1..65535";
              }
              units "second";
              description
                "Minimum Target Defined cadence in secs. 30 secs
               by default";
            }
    
            leaf cadence-factor {
              type uint32 {
                range "1..10";
              }
              description
                "Multiplier/Factor for cadence of Tgt defined
               mode. Default: 2";
            }
          }  // container gnmi-target-defined
    
          leaf strict-timer {
            type empty;
            description
              "enable strict-timer for all subscriptions,
             default is relative timer";
          }
    
          leaf enable {
            type empty;
            description
              "Enable Model Driven Telemetry";
          }
    
          leaf max-sensor-paths {
            type uint32 {
              range "0..4000";
            }
            default "1000";
            description
              "Maximum allowed sensor paths. 0 disables the
             check.";
          }
    
          leaf max-containers-per-path {
            type uint32 {
              range "0..1024";
            }
            default "16";
            description
              "Maximum containers allowed per sensor path. 0
             disables the check.";
          }
    
          leaf tcp-send-timeout {
            type uint32 {
              range "0..30";
            }
            units "second";
            default "30";
            description
              "TCP send timeout value in seconds. 0 disables
             the timeout.";
          }
        }  // container telemetry-model-driven
      }  // module Cisco-IOS-XR-telemetry-model-driven-cfg
    

© 2023 YumaWorks, Inc. All rights reserved.