Cisco-IOS-XR-ifmgr-cfg

This module contains a collection of YANG definitions for Cisco IOS-XR ifmgr package configuration. This module contains defini...

  • Version: 2020-10-01

    Cisco-IOS-XR-ifmgr-cfg@2020-10-01


    
      module Cisco-IOS-XR-ifmgr-cfg {
    
        yang-version 1;
    
        namespace
          "http://cisco.com/ns/yang/Cisco-IOS-XR-ifmgr-cfg";
    
        prefix ifmgr-cfg;
    
        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 ifmgr package configuration.
    
    This module contains definitions
    for the following management objects:
      global-interface-configuration: Global scoped configuration
        for interfaces
      interface-configurations: Configuration for all interfaces
    
    Copyright (c) 2013-2020 by Cisco Systems, Inc.
    All rights reserved.";
    
        revision "2020-10-01" {
          description
            "Updated path for description configuration
    2020-10-01
      64-bit bandwidth support";
        }
    
        revision "2019-04-05" {
          description
            "Establish semantic version baseline.";
        }
    
        revision "2017-09-07" {
          description
            "Fixed type translation error.";
        }
    
        revision "2015-07-30" {
          description "Descriptions updated.";
        }
    
        revision "2015-01-07" {
          description "IOS XR 5.3.1 revision.";
        }
    
        semver:module-version "1.1.0";
        semver:module-version "1.0.0";
    
        typedef Interface-mode-enum {
          type enumeration {
            enum "default" {
              value 0;
              description
                "Default Interface Mode";
            }
            enum "point-to-point" {
              value 1;
              description
                "Point-to-Point Interface Mode";
            }
            enum "multipoint" {
              value 2;
              description
                "Multipoint Interface Mode";
            }
            enum "l2-transport" {
              value 3;
              description
                "L2 Transport Interface Mode";
            }
          }
          description "Interface mode enum";
        }
    
        typedef Interface-active {
          type string {
            pattern '(act)|(pre)';
          }
          description
            "act:The interface is active, pre:Preconfiguration";
        }
    
        typedef Secondary-admin-state-enum {
          type enumeration {
            enum "normal" {
              value 0;
              description "Normal Mode";
            }
            enum "maintenance" {
              value 1;
              description "Maintenance Mode";
            }
          }
          description
            "Secondary admin state enum";
        }
    
        typedef Link-status-enum {
          type enumeration {
            enum "default" {
              value 0;
              description
                "Display link status messages for physical links";
            }
            enum "disable" {
              value 1;
              description
                "Disable link status messages";
            }
            enum "software-interfaces" {
              value 2;
              description
                "Display link status messages for all interfaces";
            }
          }
          description "Link status enum";
        }
    
        container global-interface-configuration {
          description
            "Global scoped configuration for interfaces";
          leaf link-status {
            type Link-status-enum;
            default "default";
            description
              "Enable or disable link-status messages";
          }
        }  // container global-interface-configuration
    
        container interface-configurations {
          description
            "Configuration for all interfaces";
          list interface-configuration {
            key "active interface-name";
            description
              "The configuration for an interface";
            container dampening {
              description
                "Whether this interface's state changes are
    dampened or not";
              leaf args {
                type enumeration {
                  enum "default-values" {
                    value 0;
                    description "Default values";
                  }
                  enum "specify-half-life" {
                    value 1;
                    description
                      "Half Life Specified";
                  }
                  enum "specify-all" {
                    value 4;
                    description
                      "All Arguments except Restart Penalty
    Specified";
                  }
                  enum "specify-rp" {
                    value 5;
                    description
                      "All Arguments Specified";
                  }
                }
                description
                  "Dampening Arguments";
              }
    
              leaf half-life {
                when
                  "../args = 'specify-half-life' or ../args = 'specify-all' or ../args = 'specify-rp'" {
                  description
                    "../Args = SpecifyHalfLife or ../Args =
    SpecifyAll or ../Args = SpecifyRP";
                }
                type uint32 {
                  range "1..45";
                }
                units "minute";
                description
                  "Decay half life (in minutes)";
              }
    
              leaf reuse-threshold {
                when
                  "../args = 'specify-all' or ../args = 'specify-rp'" {
                  description
                    "../Args = SpecifyAll or ../Args = SpecifyRP";
                }
                type uint32 {
                  range "1..20000";
                }
                description "Reuse threshold";
              }
    
              leaf suppress-threshold {
                when
                  "../args = 'specify-all' or ../args = 'specify-rp'" {
                  description
                    "../Args = SpecifyAll or ../Args = SpecifyRP";
                }
                type uint32 {
                  range "1..20000";
                }
                description "Suppress threshold";
              }
    
              leaf suppress-time {
                when
                  "../args = 'specify-all' or ../args = 'specify-rp'" {
                  description
                    "../Args = SpecifyAll or ../Args = SpecifyRP";
                }
                type uint32 {
                  range "1..255";
                }
                units "minute";
                description
                  "Max suppress time (in minutes)";
              }
    
              leaf restart-penalty {
                when "../args = 'specify-rp'" {
                  description
                    "../Args = SpecifyRP";
                }
                type uint32 {
                  range "0..20000";
                }
                description "Restart penalty";
              }
            }  // container dampening
    
            container mtus {
              description
                "The MTU configuration for the interface";
              list mtu {
                key "owner";
                description
                  "The MTU for the interface";
                leaf owner {
                  type xr:Cisco-ios-xr-string;
                  description
                    "The Owner of the interface - eg. for
    'LoopbackX' main interface this is 'loopback'";
                }
    
                leaf mtu {
                  type uint32 {
                    range "64..65535";
                  }
                  mandatory true;
                  description "The MTU value";
                }
              }  // list mtu
            }  // container mtus
    
            container encapsulation {
              description
                "The encapsulation on the interface";
              leaf encapsulation {
                type string;
                description
                  "The encapsulation - e.g. hdlc, ppp";
              }
    
              leaf capsulation-options {
                type uint32;
                description
                  "The options for this capsulation, usually '0'";
              }
            }  // container encapsulation
    
            leaf shutdown {
              type empty;
              description
                "The existence of this configuration indicates
    the interface is shut down";
            }
    
            leaf interface-virtual {
              type empty;
              description
                "The mode in which an interface is running. The
    existence of this object causes the creation of
    the software virtual/subinterface.";
            }
    
            leaf secondary-admin-state {
              type Secondary-admin-state-enum;
              description
                "The secondary admin state of the interface";
            }
    
            leaf interface-mode-non-physical {
              type Interface-mode-enum;
              default "default";
              description
                "The mode in which an interface is running. The
    existence of this object causes the creation of
    the software subinterface.";
            }
    
            leaf bandwidth {
              type uint64 {
                range "0..18446744073709551615";
              }
              units "kbit/s";
              description
                "The bandwidth of the interface in kbps";
            }
    
            leaf link-status {
              type empty;
              description
                "Enable interface and line-protocol state change
    alarms";
            }
    
            leaf description {
              type string;
              description
                "The description of this interface";
            }
    
            leaf active {
              type Interface-active;
              description
                "Whether the interface is active or
    preconfigured";
            }
    
            leaf interface-name {
              type xr:Interface-name;
              description
                "The name of the interface";
            }
    
            container ppp {
              description
                "Interface PPP configuration data";
              container mcmp {
                description
                  "PPP Multiclass Multilink parameters";
                container local {
                  description
                    "This specifies the MCMP options for the local
    host";
                  leaf initial {
                    type uint32 {
                      range "1..16";
                    }
                    default "2";
                    description
                      "Local Initial #classes";
                  }
    
                  leaf maximum {
                    type uint32 {
                      range "1..16";
                    }
                    default "4";
                    description
                      "Local Maximum #classes";
                  }
                }  // container local
    
                leaf enable {
                  type empty;
                  description
                    "This specifies that MCMP is enabled on this
    interface";
                }
    
                leaf remote {
                  type uint32 {
                    range "1..16";
                  }
                  default "2";
                  description
                    "This specifies the MCMP options for the peer";
                }
              }  // container mcmp
    
              container lcp {
                description
                  "PPP LCP configuration data";
                container multilink {
                  description
                    "Multilink configuration";
                  container minimum-active {
                    description
                      "Minimum criteria for the linestate of a
    Multilink PPPinterface to be brought up";
                    leaf links {
                      type uint32 {
                        range "1..65535";
                      }
                      default "1";
                      description
                        "Number of active links needed to bring up an
    MP interface";
                    }
                  }  // container minimum-active
                }  // container multilink
    
                container pap {
                  description
                    "Password Authentication Protocol (PAP)
    configuration data";
                  container send-user-info {
                    description
                      "This specifies the outbound PAP username and
    password";
                    leaf username {
                      type string;
                      description
                        "Outbound PAP username";
                    }
    
                    leaf password {
                      type xr:Proprietary-password;
                      description
                        "Outbound PAP password";
                    }
                  }  // container send-user-info
    
                  leaf refuse {
                    type empty;
                    description
                      "This specifies whether to refuse to
    authenticate using PAP";
                  }
                }  // container pap
    
                container loop-back {
                  description
                    "Loopback configuration";
                  leaf ignore {
                    type empty;
                    description
                      "Allow magic numbers to be equal";
                  }
                }  // container loop-back
    
                container ms-chap {
                  description
                    "Microsoft Challenge Handshake Authentication
    Protocol (MS-CHAP) configuration data";
                  leaf password {
                    type xr:Proprietary-password;
                    description
                      "This specifies the default MS-CHAP password";
                  }
    
                  leaf host-name {
                    type string;
                    description
                      "This specifies the MS-CHAP hostname";
                  }
    
                  leaf refuse {
                    type empty;
                    description
                      "This specifies whether to refuse to
    authenticate using MS-CHAP";
                  }
                }  // container ms-chap
    
                container authentication {
                  description
                    "PPP authentication parameters";
                  container method {
                    description
                      "This specifies the PPP link authentication
    method";
                    leaf name {
                      type string;
                      description
                        "Use an authentication list with this name";
                    }
    
                    leaf-list method {
                      type Ppp-authentication-method;
                      max-elements 3;
                      description
                        "Select between one and three authentication
    methods in order of preference";
                    }
                  }  // container method
    
                  leaf max-authentication-failures {
                    type uint32 {
                      range "0..10";
                    }
                    description
                      "This specifies whether to allow multiple
    authentication failures and, if so, how many";
                  }
    
                  leaf timeout {
                    type uint32 {
                      range "3..30";
                    }
                    default "10";
                    description
                      "Maximum time to wait for an authentication
    response";
                  }
                }  // container authentication
    
                container chap {
                  description
                    "Challenge Handshake Authentication Protocol
    (CHAP) configuration data";
                  leaf password {
                    type xr:Proprietary-password;
                    description
                      "This specifies the default CHAP password";
                  }
    
                  leaf host-name {
                    type string;
                    description
                      "This specifies the CHAP hostname";
                  }
    
                  leaf refuse {
                    type empty;
                    description
                      "This specifies whether to refuse to
    authenticate using CHAP";
                  }
                }  // container chap
    
                leaf service-type {
                  type uint32;
                  description
                    "This specifies whether to allow multiple
    authentication failures and, if so, how many";
                }
              }  // container lcp
            }  // container ppp
    
            container pbr {
              description
                "Interface PBR configuration";
              container service-policies {
                description
                  "Ingress service policy";
                list service-policy {
                  key "service-policy";
                  description
                    "Service policy details";
                  leaf service-policy {
                    type string {
                      length "1..64";
                    }
                    description
                      "Name of policy-map";
                  }
                }  // list service-policy
              }  // container service-policies
    
              leaf service-policy-in {
                type string;
                description
                  "Class for subscriber ingress policy";
              }
            }  // container pbr
    
            container frequency-synchronization {
              presence
                "CLI submode compatibility.";
              description
                "Frequency Synchronization interface
    configuration";
              container input-quality-level {
                description
                  "Set the input quality level";
                leaf quality-level-option {
                  type dt1:Fsync-ql-option;
                  must
                    "../exact-quality-level-value or ../min-quality-level-value or ../max-quality-level-value or (../min-quality-level-value and ../max-quality-level-value)";
                  description
                    "Quality level option";
                }
    
                leaf exact-quality-level-value {
                  type dt1:Fsync-ql-value;
                  must
                    "../quality-level-option and not(../min-quality-level-value or ../max-quality-level-value)";
                  description
                    "Exact quality level value";
                }
    
                leaf min-quality-level-value {
                  type dt1:Fsync-ql-value;
                  must
                    "../quality-level-option and not(../exact-quality-level-value)";
                  description
                    "Minimum quality level value";
                }
    
                leaf max-quality-level-value {
                  type dt1:Fsync-ql-value;
                  must
                    "../quality-level-option and not(../exact-quality-level-value)";
                  description
                    "Maximum quality level value";
                }
              }  // container input-quality-level
    
              container output-quality-level {
                description
                  "Set the output quality level";
                leaf quality-level-option {
                  type dt1:Fsync-ql-option;
                  must
                    "../exact-quality-level-value or ../min-quality-level-value or ../max-quality-level-value or (../min-quality-level-value and ../max-quality-level-value)";
                  description
                    "Quality level option";
                }
    
                leaf exact-quality-level-value {
                  type dt1:Fsync-ql-value;
                  must
                    "../quality-level-option and not(../min-quality-level-value or ../max-quality-level-value)";
                  description
                    "Exact quality level value";
                }
    
                leaf min-quality-level-value {
                  type dt1:Fsync-ql-value;
                  must
                    "../quality-level-option and not(../exact-quality-level-value)";
                  description
                    "Minimum quality level value";
                }
    
                leaf max-quality-level-value {
                  type dt1:Fsync-ql-value;
                  must
                    "../quality-level-option and not(../exact-quality-level-value)";
                  description
                    "Maximum quality level value";
                }
              }  // container output-quality-level
    
              leaf ssm-disable {
                type empty;
                description
                  "Disable SSM on this source";
              }
    
              leaf time-of-day-priority {
                type uint32 {
                  range "1..254";
                }
                default "100";
                description
                  "Set the time-of-day priority of this source";
              }
    
              leaf selection-input {
                type empty;
                description
                  "Assign this source as a selection input";
              }
    
              leaf enable {
                type empty;
                description
                  "Enable Frequency Synchronization";
              }
    
              leaf priority {
                type uint32 {
                  range "1..254";
                }
                default "100";
                description
                  "Set the priority of this source";
              }
    
              leaf wait-to-restore-time {
                type uint32 {
                  range "0..12";
                }
                default "5";
                description
                  "Set the wait-to-restore time for this source";
              }
            }  // container frequency-synchronization
    
            leaf maintenance-embargo {
              type boolean;
              description
                "configure maintenance embargo flag on the given
    interface";
            }
    
            container dwdm {
              description
                "DWDM port controller configuration";
              container network-srlgs {
                description
                  "Configure Network srlgs";
                list network-srlg {
                  key "set-id";
                  description
                    "Configure network srlg sets";
                  leaf set-id {
                    type uint32 {
                      range "1..17";
                    }
                    description "Set index";
                  }
    
                  leaf srlg1 {
                    type uint32 {
                      range "0..4294967294";
                    }
                    description "none";
                  }
    
                  leaf srlg2 {
                    type uint32 {
                      range "0..4294967294";
                    }
                    description "none";
                  }
    
                  leaf srlg3 {
                    type uint32 {
                      range "0..4294967294";
                    }
                    description "none";
                  }
    
                  leaf srlg4 {
                    type uint32 {
                      range "0..4294967294";
                    }
                    description "none";
                  }
    
                  leaf srlg5 {
                    type uint32 {
                      range "0..4294967294";
                    }
                    description "none";
                  }
    
                  leaf srlg6 {
                    type uint32 {
                      range "0..4294967294";
                    }
                    description "none";
                  }
                }  // list network-srlg
              }  // container network-srlgs
    
              container g709 {
                description
                  "Configure G709 parameters";
                container odu {
                  description
                    "Configure ODU parameters";
                  container odu-reports {
                    description
                      "Configure ODU alarm reporting";
                    list odu-report {
                      key "alarm";
                      description "none";
                      leaf alarm {
                        type Odu-alarm;
                        description
                          "ODU alarm type";
                      }
                    }  // list odu-report
                  }  // container odu-reports
    
                  container odu-thresholds {
                    description
                      "Configure ODU threshold value";
                    list odu-threshold {
                      key "threshold";
                      description "none";
                      leaf threshold {
                        type Odu-threshold;
                        description
                          "ODU Threshold type";
                      }
    
                      leaf threshold-value {
                        type uint32 {
                          range "1..9";
                        }
                        mandatory true;
                        description
                          "Bit error rate (10 to the minus n)";
                      }
                    }  // list odu-threshold
                  }  // container odu-thresholds
    
                  container odu-expected-tti {
                    description
                      "Configure ODU Expected TTI value";
                    leaf string-type {
                      type Expected-tti;
                      description
                        "TTI string type (ascii or hex format)";
                    }
    
                    leaf ascii-string {
                      when
                        "../string-type = 'expected-tti-ascii'" {
                        description
                          "../StringType = EXPECTED_TTI_ASCII";
                      }
                      type string {
                        length "1..64";
                      }
                      description
                        "ASCII text (Max 64 characters)";
                    }
    
                    leaf hex-string {
                      when
                        "../string-type = 'expected-tti-hex'" {
                        description
                          "../StringType = EXPECTED_TTI_HEX";
                      }
                      type string {
                        length "1..128";
                      }
                      description
                        "Hex nibbles (Max 128- The string length
    should be an even number)";
                    }
                  }  // container odu-expected-tti
    
                  container odu-tx-tti {
                    description
                      "Configure ODU TTI value";
                    leaf string-type {
                      type Tx-tti;
                      description
                        "TTI string type (ascii or hex format)";
                    }
    
                    leaf ascii-string {
                      when
                        "../string-type = 'tx-tti-ascii'" {
                        description
                          "../StringType = TX_TTI_ASCII";
                      }
                      type string {
                        length "1..64";
                      }
                      description
                        "ASCII text (Max 64 characters)";
                    }
    
                    leaf hex-string {
                      when
                        "../string-type = 'tx-tti-hex'" {
                        description
                          "../StringType = TX_TTI_HEX";
                      }
                      type string {
                        length "1..128";
                      }
                      description
                        "Hex nibbles (Max 128- The string length
    should be an even number)";
                    }
                  }  // container odu-tx-tti
                }  // container odu
    
                container otu {
                  description
                    "Configure OTU parameters";
                  container otu-expected-tti {
                    description
                      "Configure OTU Expected TTI value";
                    leaf string-type {
                      type Expected-tti;
                      description
                        "TTI string type (ascii or hex format)";
                    }
    
                    leaf ascii-string {
                      when
                        "../string-type = 'expected-tti-ascii'" {
                        description
                          "../StringType = EXPECTED_TTI_ASCII";
                      }
                      type string {
                        length "1..64";
                      }
                      description
                        "ASCII text (Max 64 characters)";
                    }
    
                    leaf hex-string {
                      when
                        "../string-type = 'expected-tti-hex'" {
                        description
                          "../StringType = EXPECTED_TTI_HEX";
                      }
                      type string {
                        length "1..128";
                      }
                      description
                        "Hex nibbles (Max 128- The string length
    should be an even number)";
                    }
                  }  // container otu-expected-tti
    
                  container otu-thresholds {
                    description
                      "Configure OTU threshold value";
                    list otu-threshold {
                      key "threshold";
                      description "none";
                      leaf threshold {
                        type Otu-threshold;
                        description
                          "OTU Threshold type";
                      }
    
                      leaf threshold-value {
                        type uint32 {
                          range "1..9";
                        }
                        mandatory true;
                        description
                          "Bit error rate (10 to the minus n)";
                      }
                    }  // list otu-threshold
                  }  // container otu-thresholds
    
                  container frr {
                    description
                      "Configure FRR thresholds and Window for
    trigger and revert";
                    container trigger-window {
                      presence
                        "Indicates a trigger-window node is configured.";
                      description
                        "Configure FRR trigger window";
                      leaf window {
                        type uint32 {
                          range "10..10000";
                        }
                        mandatory true;
                        description
                          "Integration window for FRR trigger in MS";
                      }
    
                      leaf dummy {
                        type uint32 {
                          range "0..2";
                        }
                        description
                          "Just a Dummy for window for FRR revert in
    MS";
                      }
                    }  // container trigger-window
    
                    container revert-threshold {
                      presence
                        "Indicates a revert-threshold node is configured.";
                      description
                        "Configure proactive protection revert
    threshold";
                      leaf ber-base {
                        type uint32 {
                          range "1..9";
                        }
                        mandatory true;
                        description
                          "Bit error rate base (x of xE-y)";
                      }
    
                      leaf ber-power {
                        type uint32 {
                          range "3..10";
                        }
                        mandatory true;
                        description
                          "Bit error rate power (y of xE-y)";
                      }
                    }  // container revert-threshold
    
                    container trigger-threshold {
                      presence
                        "Indicates a trigger-threshold node is configured.";
                      description
                        "Configure proactive protection trigger
    threshold";
                      leaf ber-base {
                        type uint32 {
                          range "1..9";
                        }
                        mandatory true;
                        description
                          "Bit error rate base (x of xE-y)";
                      }
    
                      leaf ber-power {
                        type uint32 {
                          range "2..9";
                        }
                        mandatory true;
                        description
                          "Bit error rate power (y of xE-y)";
                      }
                    }  // container trigger-threshold
    
                    container revert-window {
                      presence
                        "Indicates a revert-window node is configured.";
                      description
                        "Configure FRR revert window";
                      leaf window {
                        type uint32 {
                          range "500..100000";
                        }
                        mandatory true;
                        description
                          "Integration window for FRR revert in MS";
                      }
    
                      leaf dummy {
                        type uint32 {
                          range "0..2";
                        }
                        description
                          "Just a Dummy for window for FRR revert in
    MS";
                      }
                    }  // container revert-window
                  }  // container frr
    
                  container otu-reports {
                    description
                      "Configure OTU alarm reporting";
                    list otu-report {
                      key "alarm";
                      description "none";
                      leaf alarm {
                        type Otu-alarm;
                        description
                          "OTU alarm type";
                      }
                    }  // list otu-report
                  }  // container otu-reports
    
                  container otu-tx-tti {
                    description
                      "Configure OTU TTI value";
                    leaf string-type {
                      type Tx-tti;
                      description
                        "TTI string type (ascii or hex format)";
                    }
    
                    leaf ascii-string {
                      when
                        "../string-type = 'tx-tti-ascii'" {
                        description
                          "../StringType = TX_TTI_ASCII";
                      }
                      type string {
                        length "1..64";
                      }
                      description
                        "ASCII text (Max 64 characters)";
                    }
    
                    leaf hex-string {
                      when
                        "../string-type = 'tx-tti-hex'" {
                        description
                          "../StringType = TX_TTI_HEX";
                      }
                      type string {
                        length "1..128";
                      }
                      description
                        "Hex nibbles (Max 128- The string length
    should be an even number)";
                    }
                  }  // container otu-tx-tti
                }  // container otu
    
                container prbs {
                  presence
                    "Indicates a prbs node is configured.";
                  description
                    "Configure PRBS mode and pattern";
                  leaf prbs-mode {
                    type Prbs-mode;
                    mandatory true;
                    description
                      "Enable PRBS with mode";
                  }
    
                  leaf prbs-pattern {
                    type Prbs-pattern;
                    mandatory true;
                    description
                      "Enable prbs test with pattern";
                  }
                }  // container prbs
    
                container fec {
                  presence
                    "Indicates a fec node is configured.";
                  description
                    "Configure FEC mode";
                  leaf fec-mode {
                    type Fec;
                    mandatory true;
                    description
                      "None, Standard, Enhanced, High-Gain,
    Long-Haul, Ci-BCH, 15SDFecDe, 15SDFec";
                  }
    
                  leaf efec-mode {
                    type Efec;
                    default "none";
                    description
                      "Enhanced FECMode to use i.4, i.7, Other
    FECMode to use None";
                  }
                }  // container fec
    
                leaf proactive {
                  type Proactive;
                  description
                    "Enable proactive protectioni Graceful or
    Default mode";
                }
    
                leaf bdi-to-gais {
                  type empty;
                  description
                    "Enable GAIS insertion";
                }
    
                leaf tim-to-gais {
                  type empty;
                  description
                    "Configure Trace Identifier Mismatch alarm
    consequence";
                }
    
                leaf proactive-logging-file {
                  type xr:Cisco-ios-xr-string {
                    length "1..128";
                  }
                  description
                    "Configure proactive protection log file";
                }
    
                leaf tti-processing {
                  type empty;
                  description
                    "Configure Trail Trace Identifier  processing";
                }
    
                leaf enable {
                  type boolean;
                  description
                    "Disable or Enable g709 framing";
                }
    
                leaf framing {
                  type Framing;
                  description
                    "Over clocking mode for client signal bw
    compatibility";
                }
              }  // container g709
    
              container wavelength {
                presence
                  "Indicates a wavelength node is configured.";
                description
                  "Configure transponder wavelength";
                leaf wave-channel {
                  type uint32 {
                    range "1..1568362";
                  }
                  mandatory true;
                  description
                    "Select a ITU channel number,channel range for
    C-band: 1~82,L-band:106~185,spacing:50GHZ or
    100MHz";
                }
    
                leaf wave-channel-number {
                  type Wave-channel-num;
                  mandatory true;
                  description
                    "Wave Channel Number";
                }
    
                leaf prog-frequency {
                  type string {
                    length "1..128";
                  }
                  description
                    "Enter Frequency Data in THz";
                }
              }  // container wavelength
    
              leaf enable-vtxp {
                type boolean;
                description
                  "Disable or Enable VTXP configuration";
              }
    
              leaf network-port-id {
                type string {
                  length "1..64";
                }
                description
                  "Configure network port id";
              }
    
              leaf transport-admin-state {
                type Dwdm-admin-state;
                default "out-of-service";
                description
                  "Configure transport admin state";
              }
    
              leaf laser {
                type empty;
                description
                  "Configure laser off/on";
              }
    
              leaf transmit-power {
                type int32 {
                  range "-190..10";
                }
                description
                  "Select power level (in units of 0.1dBm)";
              }
    
              leaf rx-threshold {
                type int32 {
                  range "-350..50";
                }
                description
                  "Select power level (in units of 0.1dBm)";
              }
    
              leaf network-connection-id {
                type string {
                  length "1..64";
                }
                description
                  "Configure network connection id";
              }
    
              leaf loopback {
                type Dwdm-loopback;
                default "none";
                description
                  "Configure loopback mode ";
              }
            }  // container dwdm
    
            container service-activation-test {
              description
                "Service Activation Testing interface
    configuration";
              leaf permit {
                type dt1:Sat-permit;
                description
                  "Set SAT permission on the interface";
              }
            }  // container service-activation-test
    
            leaf vrf {
              type xr:Cisco-ios-xr-string {
                length "1..32";
              }
              description
                "Assign the interface to a VRF";
            }
    
            container afs {
              status deprecated;
              description
                "This model is deprecated and is replaced by
    Cisco-IOS-XR-um-vrf-cfg.yang which will provide
    the compatible functionalities.
    Per-address-family and topology configuration";
              list af {
                key "af-name saf-name";
                description
                  "The presence of this object enables the
    givenaddress-family and topology on the
    interface.";
                leaf af-name {
                  type Vrf-address-family;
                  description "Address-family";
                }
    
                leaf saf-name {
                  type Vrf-sub-address-family;
                  description
                    "Sub-address-family";
                }
              }  // list af
    
              list af-topology-name {
                key "topology-name af-name saf-name";
                description
                  "The presence of this object enables the
    givenaddress-family and topology on the
    interface.";
                leaf topology-name {
                  type xr:Cisco-ios-xr-string {
                    length "1..32";
                  }
                  description "Topology name";
                }
    
                leaf af-name {
                  type Vrf-address-family;
                  description "Address-family";
                }
    
                leaf saf-name {
                  type Vrf-sub-address-family;
                  description
                    "Sub-address-family";
                }
              }  // list af-topology-name
            }  // container afs
    
            container portmode {
              description
                "Configure through port-mode";
              leaf speed-sel {
                type Speed-sel;
                description "Select speed";
              }
    
              leaf fec-sel {
                type Fec-sel;
                description "Select Fec";
              }
    
              leaf diff-sel {
                type Diff-sel;
                description "Select Diff";
              }
    
              leaf mod-sel {
                type Mod-sel;
                description "Select modulation";
              }
            }  // container portmode
    
            container ipv6-packet-filter {
              description
                "IPv6 Packet Filtering configuration for the
    interface";
              container inbound {
                description
                  "IPv6 Packet filter to be applied to inbound
    packets";
                leaf common-acl-name {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  description
                    "Reserved for backward compatibility. IPv6
    Packet Filter Name to be applied to Inbound
    packets, ACL providing HW optimization when
    applied on multiple interfaces. NOTE: This
    parameter is mandatory if 'Name' is not
    specified.";
                }
    
                leaf name {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  description
                    "Reserved for backward compatibility. IPv6
    Packet Filter Name to be applied to Inbound
    NOTE: This parameter is mandatory if
    'CommonACLName' is not specified.";
                }
    
                leaf interface-statistics {
                  type empty;
                  description
                    "True if packets hitting the ACL should be
    counted in hardware per interface.The default
    is not to count them. NOTE:
    InterfaceStatistics is allowed only if Name is
    specified.";
                }
    
                leaf compression-level {
                  type uint32 {
                    range "0..3";
                  }
                  description
                    "The level of compression applied to the ACL on
    this interface. The range is 0 to 3 with
    default being no compression (0).";
                }
    
                leaf-list acl-name-array {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  max-elements 5;
                  description
                    "Array of IPv6 Packet Filter Names to be
    applied to Inbound packets";
                }
    
                leaf-list is-common-array {
                  type boolean;
                  max-elements 5;
                  description
                    "Array of CommonACL flags for each ACL. TRUE
    indicates HW optimization on multiple
    interfaces is provided";
                }
              }  // container inbound
    
              container outbound {
                description
                  "IPv6 Packet filter to be applied to outbound
    packets";
                leaf do-not-use {
                  type string {
                    length "1..64";
                  }
                  description
                    "Reserved.  Error if specified.";
                }
    
                leaf name {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  description
                    "Reserved for backward compatibility. IPv6
    Packet Filter Name to be applied to Outbound
    packets.";
                }
    
                leaf interface-statistics {
                  type empty;
                  description
                    "True if packets hitting the ACL should be
    counted in hardware per interface.The default
    is not to count them.";
                }
    
                leaf compression-level {
                  type uint32 {
                    range "0..3";
                  }
                  description
                    "The level of compression applied to the ACL on
    this interface. The range is 0 to 3 with
    default being no compression (0).";
                }
    
                leaf-list acl-name-array {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  max-elements 5;
                  description
                    "Array of IPv6 Packet Filter Names to be
    applied to Inbound packets";
                }
    
                leaf-list is-common-array {
                  type boolean;
                  max-elements 5;
                  description
                    "Array of CommonACL flags for each ACL. TRUE
    indicates HW optimization on multiple
    interfaces is provided";
                }
              }  // container outbound
            }  // container ipv6-packet-filter
    
            container es-packet-filter {
              description
                "ES Packet Filtering configuration for the
    interface";
              leaf outbound {
                type xr:Cisco-ios-xr-string {
                  length "1..64";
                }
                description
                  "Name of filter to be applied to outbound
    packets";
              }
    
              leaf inbound {
                type xr:Cisco-ios-xr-string {
                  length "1..64";
                }
                description
                  "Name of filter to be applied to inbound packets";
              }
            }  // container es-packet-filter
    
            container ipv4-packet-filter {
              description
                "IPv4 Packet Filtering configuration for the
    interface";
              container outbound {
                description
                  "IPv4 Packet filter to be applied to outbound
    packets";
                leaf do-not-use {
                  type string {
                    length "1..64";
                  }
                  description
                    "Reserved.  Error if specified.";
                }
    
                leaf name {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  description
                    "Reserved for backward compatibility. IPv4
    Packet Filter Name to be applied to Outbound
    packets NOTE: This parameter is mandatory if
    'CommonACLName' is not specified.";
                }
    
                leaf hardware-count {
                  type empty;
                  description
                    "True if packets hitting the ACL should be
    counted in the hardware.  The default is not
    to count them.";
                }
    
                leaf interface-statistics {
                  type empty;
                  description
                    "True if packets hitting the ACL should be
    counted in hardware per interface.The default
    is not to count them.";
                }
    
                leaf compression-level {
                  type uint32 {
                    range "0..3";
                  }
                  description
                    "The level of compression applied to the ACL on
    this interface. The range is 0 to 3 with
    default being no compression (0).";
                }
    
                leaf-list acl-name-array {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  max-elements 5;
                  description
                    "Array of IPv4 Packet Filter Names to be
    applied to Outbound packets";
                }
    
                leaf-list is-common-array {
                  type boolean;
                  max-elements 5;
                  description
                    "Array of CommonACL flags for each ACL. TRUE
    indicates HW optimization on multiple
    interfaces is provided";
                }
              }  // container outbound
    
              container inbound {
                description
                  "IPv4 Packet filter to be applied to inbound
    packets";
                leaf common-acl-name {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  description
                    "Reserved for backward compatibility. IPv4
    Packet Filter Name to be applied to Inbound
    packets, ACL providing HW optimization when
    applied on multiple interfaces. NOTE: This
    parameter is mandatory if 'Name' is not
    specified.";
                }
    
                leaf name {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  description
                    "Reserved for backward compatibility. IPv4
    Packet Filter Name to be applied to Inbound
    packets NOTE: This parameter is mandatory if
    'CommonACLName' is not specified.";
                }
    
                leaf hardware-count {
                  type empty;
                  description
                    "True if packets hitting the ACL should be
    counted in the hardware.  The default is not
    to count them. NOTE: HardwareCount is allowed
    only if Name is specified.";
                }
    
                leaf interface-statistics {
                  type empty;
                  description
                    "True if packets hitting the ACL should be
    counted in hardware per interface.The default
    is not to count them. NOTE:
    InterfaceStatistics is allowed only if Name is
    specified.";
                }
    
                leaf compression-level {
                  type uint32 {
                    range "0..3";
                  }
                  description
                    "The level of compression applied to the ACL on
    this interface. The range is 0 to 3 with
    default being no compression (0).";
                }
    
                leaf-list acl-name-array {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  max-elements 5;
                  description
                    "Array of IPv4 Packet Filter Names to be
    applied to Inbound packets";
                }
    
                leaf-list is-common-array {
                  type boolean;
                  max-elements 5;
                  description
                    "Array of CommonACL flags for each ACL. TRUE
    indicates HW optimization on multiple
    interfaces is provided";
                }
              }  // container inbound
            }  // container ipv4-packet-filter
    
            container cpri {
              description
                "CPRI port controller configuration";
              container extended-loopback {
                description
                  "Configure CPRI port extended loopback level and
    mode";
                leaf level {
                  type uint32 {
                    range "1..3";
                  }
                  description
                    "ExtendedLoopbackLevel";
                }
    
                leaf mode {
                  type Cpri-lpbk-mode;
                  description
                    "ExtendedLoopbackMode";
                }
              }  // container extended-loopback
    
              leaf loopback {
                type Cpri-loopback;
                default "none";
                description
                  "Configure CPRI loopback mode ";
              }
    
              leaf l1-startup-timer {
                type uint32;
                default "0";
                description
                  "Configure L1 startup timer value";
              }
    
              leaf roe-profile {
                type uint32 {
                  range "1..255";
                }
                description "Attach RoE profile";
              }
            }  // container cpri
    
            container lldp {
              presence
                "Indicates a lldp node is configured.";
              description
                "Disable LLDP TX or RX";
              container transmit {
                description "Disable LLDP TX";
                leaf disable {
                  type boolean;
                  default "false";
                  description "disable LLDP TX";
                }
              }  // container transmit
    
              container receive {
                description "Disable LLDP RX";
                leaf disable {
                  type boolean;
                  default "false";
                  description "disable LLDP RX";
                }
              }  // container receive
    
              leaf lldp-intf-enter {
                type boolean;
                mandatory true;
                description
                  "enter LLDP interface submode";
              }
    
              leaf enable {
                type boolean;
                default "false";
                description
                  "Enable both LLDP TX and RX";
              }
            }  // container lldp
    
            container ethernet {
              status deprecated;
              description
                "This model is deprecated and is replaced by
    Cisco-IOS-XR-um-if-ethernet-cfg.yang which will
    provide the compatible functionalities.  Ether
    specific interface configuration";
              container priority-flow-control-watchdog {
                description
                  "Priority Flow Control Watchdog options";
                leaf shutdown-multiplier {
                  type uint32 {
                    range "1..10";
                  }
                  description
                    "Configure priority flow-control watchdog
    interval multiplier";
                }
    
                leaf mode {
                  type Ethernet-pfcwd;
                  description
                    "Configure priority flow-control watchdog mode";
                }
    
                leaf auto-restore-multiplier {
                  type uint32 {
                    range "0..100";
                  }
                  description
                    "Configure priority flow-control watchdog Auto
    Restore Multiplier";
                }
    
                leaf interval {
                  type uint32 {
                    range "100..1000";
                  }
                  description
                    "Configure priority flow-control watchdog
    interval";
                }
              }  // container priority-flow-control-watchdog
    
              container signal-fail-bit-error-rate {
                description
                  "Signal Fail Bit Error Rate handling options";
                leaf signal-remote-fault {
                  type empty;
                  description
                    "Signal a remote fault to the peer device
    whenever the link is taken down due to
    crossing the SF-BER threshold";
                }
    
                leaf signal-fail-threshold {
                  type uint32 {
                    range "4..15";
                  }
                  default "4";
                  description
                    "Set the Signal Fail bit error rate threshold
    on an interface to a value of 10e-x, where x
    is the value passed in here";
                }
    
                leaf signal-fail-report-disable {
                  type empty;
                  description
                    "Disable generation of an alarm whenever the
    SF-BER threshold is crossed for this interface";
                }
              }  // container signal-fail-bit-error-rate
    
              container optical-power-degrade {
                description
                  "Optical power degrade handling options";
                leaf rx-alarm-threshold {
                  type int32 {
                    range "-300..50";
                  }
                  description
                    "Set the value of the received optical power
    degrade alarm threshold on an interface";
                }
              }  // container optical-power-degrade
    
              container signal-degrade-bit-error-rate {
                description
                  "Signal Degrade Bit Error Rate handling options";
                leaf signal-degrade-threshold {
                  type uint32 {
                    range "3..15";
                  }
                  default "6";
                  description
                    "Set the Signal Degrade bit error rate
    threshold on an interface to a value of 10e-x,
    where x is the value passed in here";
                }
    
                leaf signal-degrade-report {
                  type empty;
                  description
                    "Generate an alarm whenever the SD-BER
    threshold is crossed for this interface";
                }
              }  // container signal-degrade-bit-error-rate
    
              container priority-flow-control {
                description
                  "Priority Flow Control options";
                leaf mode {
                  type Ethernet-pfc;
                  description
                    "Configure priority flow-control mode";
                }
              }  // container priority-flow-control
    
              container carrier-delay {
                description
                  "Set the carrier transition delay on an
    interface in msecs";
                leaf carrier-delay-up {
                  type uint32 {
                    range "0..2147483647";
                  }
                  description
                    "Carrier Delay (up) in msecs";
                }
    
                leaf carrier-delay-down {
                  type uint32 {
                    range "0..2147483647";
                  }
                  description
                    "Carrier Delay (down) in msecs";
                }
              }  // container carrier-delay
    
              leaf frame-preemption {
                type empty;
                description
                  "Enable frame preemption";
              }
    
              leaf duplex {
                type Ethernet-duplex;
                description
                  "Configure duplex operational mode";
              }
    
              leaf auto-negotiation {
                type Ethernet-auto-negotiation;
                description
                  "Link auto-negotiation";
              }
    
              leaf flow-control {
                type Ethernet-flow-ctrl;
                description
                  "Configure flow-control mode";
              }
    
              leaf forward-error-correction {
                type Ethernet-fec;
                description
                  "Forward Error Correction";
              }
    
              leaf loopback {
                type Ethernet-loopback;
                description
                  "Configure loopback mode";
              }
    
              leaf speed {
                type Ethernet-speed;
                description
                  "Set the ethernet speed on an interface";
              }
    
              leaf inter-packet-gap {
                type Ethernet-ipg;
                description "Inter-packet gap";
              }
            }  // container ethernet
    
            container optics {
              description
                "Optics controller configuration";
              container rx-thresholds {
                description
                  "Configure Rx threshold";
                list rx-threshold {
                  key "rx-threshold-type";
                  description
                    "Optics RX Low or high threshold configuration";
                  leaf rx-threshold-type {
                    type Threshold;
                    description
                      "Low or high rx threshold";
                  }
    
                  leaf rx-threshold {
                    type int32 {
                      range "-400..300";
                    }
                    mandatory true;
                    description
                      "Select power level (in units of 0.1dBm)";
                  }
                }  // list rx-threshold
              }  // container rx-thresholds
    
              container rx-voa {
                description
                  "Rx-voa configuration";
                leaf target-power {
                  type int32 {
                    range "-190..30";
                  }
                  description
                    "Receive Target Power in 0.1 dbm";
                }
    
                leaf fixed-ratio {
                  type int32 {
                    range "100..1700";
                  }
                  description
                    "Receive Ratio of Optical Attenuation in 0.01
    db";
                }
              }  // container rx-voa
    
              container optics-network-srlgs {
                description
                  "Configure Network srlgs";
                list optics-network-srlg {
                  key "set-id";
                  description
                    "Configure network srlg sets";
                  leaf set-id {
                    type uint32 {
                      range "1..17";
                    }
                    description "Set index";
                  }
    
                  leaf srlg1 {
                    type uint32 {
                      range "0..4294967294";
                    }
                    description "none";
                  }
    
                  leaf srlg2 {
                    type uint32 {
                      range "0..4294967294";
                    }
                    description "none";
                  }
    
                  leaf srlg3 {
                    type uint32 {
                      range "0..4294967294";
                    }
                    description "none";
                  }
    
                  leaf srlg4 {
                    type uint32 {
                      range "0..4294967294";
                    }
                    description "none";
                  }
    
                  leaf srlg5 {
                    type uint32 {
                      range "0..4294967294";
                    }
                    description "none";
                  }
    
                  leaf srlg6 {
                    type uint32 {
                      range "0..4294967294";
                    }
                    description "none";
                  }
                }  // list optics-network-srlg
              }  // container optics-network-srlgs
    
              container optics-dwdm-carrier {
                presence
                  "Indicates a optics-dwdm-carrier node is configured.";
                description
                  "Configure optics DWDM Carrier";
                leaf grid-type {
                  type Optics-dwdm-carrier-grid;
                  mandatory true;
                  description
                    "DWDM Channel Grid Type";
                }
    
                leaf param-type {
                  type Optics-dwdm-carrier-param;
                  mandatory true;
                  description
                    "DWDM Channel Parameter Type ITU-Channel or
    Frequency or Wavelength";
                }
    
                leaf param-value {
                  type uint32 {
                    range "1..1961000";
                  }
                  mandatory true;
                  description
                    "Type ITU-Channel Range 1-100, Frequency Range
    19115-19610, Wavelength Range 1528773-1568362,
    100MHz Frequency Range 1861000-1961000";
                }
              }  // container optics-dwdm-carrier
    
              container optics-lanes {
                description "Optics lanes";
                list optics-lane {
                  key "index";
                  description "Lane";
                  leaf description {
                    type string {
                      length "1..255";
                    }
                    description
                      "Configure description for this Lane";
                  }
    
                  leaf index {
                    type uint32;
                    description "Lane Number";
                  }
                }  // list optics-lane
              }  // container optics-lanes
    
              container tx-thresholds {
                description
                  "Configure Tx threshold";
                list tx-threshold {
                  key "tx-threshold-type";
                  description
                    "Optics TX Low or high threshold configuration";
                  leaf tx-threshold-type {
                    type Threshold;
                    description
                      "Low or high tx threshold";
                  }
    
                  leaf tx-threshold {
                    type int32 {
                      range "-400..300";
                    }
                    mandatory true;
                    description
                      "Select power level (in units of 0.1dBm)";
                  }
                }  // list tx-threshold
              }  // container tx-thresholds
    
              container transceiver {
                description "Transceiver";
                leaf disable {
                  type empty;
                  description
                    "Disable the transceiver module, treating it as
    not inserted.  When the configuration is
    removed, the transceiver module on that port,
    if present, would be initialized as if it is
    just inserted";
                }
              }  // container transceiver
    
              container submarine-params {
                description
                  "Proprietary Submarine Parameters";
                list submarine-param {
                  key "param-type";
                  description
                    "Proprietary Submarine Parameters";
                  leaf param-type {
                    type uint32 {
                      range "1..10";
                    }
                    description
                      "Proprietary submarine parameter type";
                  }
    
                  leaf param-value {
                    type uint32 {
                      range "0..4294967295";
                    }
                    mandatory true;
                    description
                      "Proprietary submarine parameter value";
                  }
                }  // list submarine-param
              }  // container submarine-params
    
              leaf optics-transmit-power {
                type int32 {
                  range "-190..50";
                }
                description
                  "Select power level (in units of 0.1dBm)";
              }
    
              leaf optics-ots-rx-enable {
                type boolean;
                description
                  "Select Rx Enable as True or False";
              }
    
              leaf nleq-comp-mode {
                type uint32 {
                  range "1..4";
                }
                description
                  "Select non linear effect compenstation mode";
              }
    
              leaf optics-ots-rx-low-threshold-psd {
                type uint32 {
                  range "0..800000";
                }
                description
                  "Rx Low threshold Psd value in units of 0.001
    nW/MHz";
              }
    
              leaf filter-roll-off-factor {
                type string {
                  length "5";
                }
                description
                  "RRC Filter Roll-Off factor in increments of 0
    .001";
              }
    
              leaf optics-ots-channel-power-max-delta {
                type int32 {
                  range "-500..300";
                }
                description
                  "Configure max delta among all measured channel
    powers ";
              }
    
              leaf optics-loopback {
                type Optics-loopback;
                default "none";
                description
                  "Configure optics loopback mode ";
              }
    
              leaf optics-ots-osri {
                type boolean;
                description
                  "Configure Optical safety remote interlock
    (OSRI)";
              }
    
              leaf optics-ots-amplifier-gain-degrade-high-threshold {
                type uint32 {
                  range "0..500";
                }
                description
                  "Select Amplifier Gain Degrade High Threshold(in
    units of 0.1dBm)";
              }
    
              leaf optics-ots-rx-voa-attenuation {
                type uint32 {
                  range "0..200";
                }
                description
                  "Select RX Voa Attenuation Setpoint(in units of
    0.1dBm)";
              }
    
              leaf optics-fastpoll {
                type boolean;
                default "true";
                description
                  "Select Fastpoll as Enable or Disable";
              }
    
              leaf optics-fec {
                type Optics-fec;
                default "fec-none";
                description
                  "Fec H15 , Fec H25 , Fec NOTSET , Fec  1I7 , Fec
    1I4 , Fec SWIZZLE , Fec HG20 , Fec HG7 , Fec
    SD20 , Fec SD7, Fec SD15 , Fec SD27 , Fec
    SD15-DE , Fec STAIRCASE-DE , Fec OFEC , Fec
    CFEC , Fec STNDRD";
              }
    
              leaf optics-dgd-high-threshold {
                type uint32 {
                  range "0..18000";
                }
                description
                  "Select DGD high threshold(in units of 0.1ps)";
              }
    
              leaf optics-ots-amplifier-channel-power {
                type int32 {
                  range "-500..300";
                }
                description
                  "Select Amplifier Channel Power(in units of 0
    .1dBm)";
              }
    
              leaf optics-ots-amplifier-control-mode {
                type Optics-ots-ampli-control-mode;
                description
                  "Configure amplifier working mode";
              }
    
              leaf optics-ots-rx-low-threshold-delta {
                type uint32 {
                  range "0..300";
                }
                description
                  "Rx Low threshold delta value in units of 0.1dB";
              }
    
              leaf cpr-ext-win-mode {
                type uint32 {
                  range "1..9";
                }
                description
                  "Select carrier phase recovery extended window
    mode";
              }
    
              leaf cross-pol-weight-mode {
                type uint32 {
                  range "1..7";
                }
                description
                  "Select carrier phase recovery cross
    polarization weight mode";
              }
    
              leaf optics-ots-amplifier-gain {
                type uint32 {
                  range "0..500";
                }
                description
                  "Select Amplifier Gain value(in units of 0.1dBm)";
              }
    
              leaf optics-ots-amplifier-gain-range {
                type Optics-ots-ampli-gain-range;
                description
                  "Normal or extended Ampli Gain Range";
              }
    
              leaf optics-ots-safety-control-mode {
                type Optics-ots-safety-control-mode;
                description
                  "Configure safety Control Mode";
              }
    
              leaf optics-cd-min {
                type int32 {
                  range "-350000..350000";
                }
                description
                  "Select min chromatic dispersion (in units of
    ps/nm)";
              }
    
              leaf optics-ots-amplifier-channel-psd {
                type uint32 {
                  range "0..800000";
                }
                description
                  "Select Amplifier Channel Psd(in units of 0.001
    nW/MHz)";
              }
    
              leaf optics-ots-tx-voa-attenuation {
                type uint32 {
                  range "0..200";
                }
                description
                  "Select TX Voa Attenuation Setpoint(in units of
    0.1dBm)";
              }
    
              leaf optics-ots-tx-enable {
                type boolean;
                description
                  "Select Tx Enable as True or False";
              }
    
              leaf optics-ots-amplifier-tilt {
                type int32 {
                  range "-50..50";
                }
                description
                  "Select Amplifier Tilt value(in units of 0.1dB)";
              }
    
              leaf optics-transmit-shutdown {
                type boolean;
                description
                  "Configure optics transmit laser shutdown ";
              }
    
              leaf optics-baud-rate {
                type string {
                  length "1..20";
                }
                description
                  "BaudRate(Max Length 10)";
              }
    
              leaf optics-performance-monitoring {
                type boolean;
                default "true";
                description
                  "Select Performance Monitoring as Enable or
    Disable";
              }
    
              leaf optics-cd-max {
                type int32 {
                  range "-350000..350000";
                }
                description
                  "Select max chromatic dispersion (in units of
    ps/nm)";
              }
    
              leaf optics-modulation {
                type Optics-modulation;
                description
                  "BPSK,QPSK,8QAM,16QAM,32QAM,64QAM,BPSK-QPSK
    ,QPSK-8QAM,8QAM-16QAM,16QAM-32QAM,32QAM-64QAM";
              }
    
              leaf cpr-win-mode {
                type uint32 {
                  range "1..4";
                }
                description
                  "Select carrier phase recovery window mode";
              }
    
              leaf optics-bits-per-symbol {
                type string {
                  length "1..20";
                }
                description
                  "BitsPerSymbol(Max Length 9)";
              }
    
              leaf enh-sop-tol-mode {
                type uint32 {
                  range "1..3";
                }
                description
                  "Select enhanced SOP tolerance mode";
              }
    
              leaf cross-pol-gain-mode {
                type uint32 {
                  range "1..15";
                }
                description
                  "Select carrier phase recovery cross
    polarization gain mode";
              }
    
              leaf optics-lbc-high-threshold {
                type uint32 {
                  range "0..100";
                }
                description
                  "Select power level (in units of percentage)";
              }
    
              leaf optics-cd-high-threshold {
                type int32 {
                  range "-350000..350000";
                }
                description
                  "Select chromatic dispersion high threshold(in
    units of ps/nm)";
              }
    
              leaf optics-osnr-low-threshold {
                type uint32 {
                  range "0..4000";
                }
                description
                  "Select OSNR low threshold(in units of 0.01db)";
              }
    
              leaf optics-ots-amplifier-gain-degrade-low-threshold {
                type uint32 {
                  range "0..500";
                }
                description
                  "Select Amplifier Gain Degrade Low Threshold(in
    units of 0.1dBm)";
              }
    
              leaf optics-cd-low-threshold {
                type int32 {
                  range "-350000..350000";
                }
                description
                  "Select chromatic dispersion low threshold(in
    units of ps/nm)";
              }
    
              leaf enh-colorless-mode {
                type uint32 {
                  range "1..3";
                }
                description
                  "Select enhanced colorless mode";
              }
    
              leaf breakout {
                type Breakout-type-list;
                description
                  "breakout mode configuration";
              }
            }  // container optics
    
            container pseudowire-ether {
              description "PW-Ether attributes";
              leaf generic-interface-list {
                type xr:Cisco-ios-xr-string {
                  length "1..32";
                }
                description
                  "Name of the interface list";
              }
    
              leaf l2-overhead {
                type uint32 {
                  range "1..64";
                }
                description
                  "PW Ether L2 overhead requirement";
              }
            }  // container pseudowire-ether
    
            container pseudowire-iw {
              description "PW-IW attributes";
              leaf l2-overhead {
                type uint32 {
                  range "1..64";
                }
                units "byte";
                description
                  "L2 overhead size in bytes";
              }
    
              leaf generic-interface-list {
                type xr:Cisco-ios-xr-string {
                  length "1..32";
                }
                description
                  "Name of the interface list";
              }
            }  // container pseudowire-iw
    
            container bvi {
              description "BVI attributes";
              container gratuitous-announcement-timer {
                description
                  "Enter Gratuitous Announcement Timer
    configuration submode";
                leaf enable {
                  type empty;
                  description
                    "Enable Gratuitous Announcement Timer";
                }
    
                leaf timer-jitter {
                  type uint32;
                  units "percentage";
                  description
                    "Gratuitous announcement jitter percentage";
                }
    
                leaf timer-interval {
                  type uint32;
                  units "second";
                  description
                    "Gratuitous announcement timer interval in
    seconds";
                }
              }  // container gratuitous-announcement-timer
    
              leaf host-routing {
                type empty;
                description
                  "Enable host-routing on this BVI";
              }
            }  // container bvi
    
            container l2-transport {
              description
                "Interface Layer 2 Transport service
    configuration data";
              leaf enabled {
                type empty;
                description
                  "This object is only valid on physical
    interfaces and it controls whether that
    interface is a port mode Layer 2 attachment
    circuit (note that for subinterfaces, the Layer
    2 property is specified when the subinterface
    is created).The object must be set before any
    other L2Transport configuration is supplied for
    the interface, and must be the last
    per-interface configuration object to be
    removed.";
              }
    
              container l2-protocols {
                description
                  "Interface specific Layer 2 protocol handling";
                list l2-protocol {
                  key "l2-protocol-name";
                  description
                    "Handling of a specific Layer 2 protocol";
                  leaf l2-protocol-name {
                    type L2-protocol-name;
                    description "Protocol name";
                  }
    
                  leaf mode {
                    type L2-protocol-mode;
                    mandatory true;
                    description
                      "How to handle the protocol's packets";
                  }
    
                  leaf mpls-exp-bits-value {
                    type L2-protocol-mpls-exp-bits-value;
                    description
                      "The value to set the MPLS Exp bits to within
    the PW.This value may be specified if the mode
    is forward or tunnel and must not be specified
    if the mode is drop";
                  }
                }  // list l2-protocol
              }  // container l2-protocols
    
              leaf propagate-remote-status {
                type empty;
                description
                  "Enable propagation of the remote
    attachment-circuit link state to the
    localattachment-circuit link state";
              }
    
              container l2-ethernet-features {
                description
                  "L2 Ethernet Features Configuration";
                leaf egress-filtering {
                  type Egress-filtering;
                  default
                    "egress-filtering-type-default";
                  description
                    "Egress Ethernet filtering";
                }
    
                leaf source-bypass-egress-filtering {
                  type empty;
                  description
                    "Mark all ingress packets to bypass any egress
    VLAN filter";
                }
              }  // container l2-ethernet-features
    
              container pac {
                description
                  "Port Attachment Circuit configuration.";
                container qos {
                  description
                    "Interface QOS configuration";
                  container output {
                    description
                      "Egress service policy";
                    list service-policy {
                      key "service-policy-name";
                      description
                        "Service policy details";
                      leaf service-policy-name {
                        type string {
                          length "0..64";
                        }
                        description
                          "Name of policy-map";
                      }
    
                      leaf account-type {
                        type Qos-policy-account;
                        description
                          "Turn off L2 or L3 accounting.";
                      }
    
                      leaf l1-user-defined {
                        type int32 {
                          range "-63..63";
                        }
                        description
                          "User specified value";
                      }
    
                      leaf spi-name {
                        type string {
                          length "0..32";
                        }
                        description
                          "Name of the SPI";
                      }
    
                      leaf subscriber-parent-policy {
                        type boolean;
                        description
                          "TRUE if service-policy applied on svlan.";
                      }
    
                      leaf resource-id {
                        type uint32 {
                          range "0..3";
                        }
                        description
                          "Resource ID value";
                      }
    
                      leaf service-fragment-parent-policy {
                        type boolean;
                        description
                          "TRUE if service-policy applied is a
      service-fragment policy).";
                      }
                    }  // list service-policy
    
                    list service-policy-qos {
                      key "service-policy-name";
                      description
                        "Service policy details";
                      container subscriber-group-names {
                        description
                          "Subscriber Group Name Details";
                        list subscriber-group-name {
                          key "subscriber-group-string";
                          description
                            "Subscriber Group details";
                          leaf subscriber-group-string {
                            type string {
                              length "0..64";
                            }
                            description
                              "Name of policy-map";
                          }
    
                          leaf account-type {
                            type Qos-policy-account;
                            description
                              "Turn off L2 or L3 accounting.";
                          }
    
                          leaf l1-user-defined {
                            type int32 {
                              range "-63..63";
                            }
                            description
                              "User specified value";
                          }
    
                          leaf spi-name {
                            type string {
                              length "0..32";
                            }
                            description
                              "Name of the SPI";
                          }
    
                          leaf policy-merge {
                            type Qos-field-not-supported;
                            description
                              "Not supported (Leave unspecified).";
                          }
    
                          leaf subscriber-parent-policy {
                            type boolean;
                            description
                              "TRUE if service-policy applied on svlan.";
                          }
    
                          leaf resource-id {
                            type uint32 {
                              range "0..3";
                            }
                            description
                              "Resource ID value";
                          }
    
                          leaf service-fragment-parent-policy {
                            type boolean;
                            description
                              "TRUE if service-policy applied is a
    service-fragment policy).";
                          }
                        }  // list subscriber-group-name
                      }  // container subscriber-group-names
    
                      container subscriber-parent {
                        presence
                          "Enable feature subscriber-parent";
                        description
                          "Subscriber Parent Details";
                        leaf account-type {
                          type Qos-policy-account;
                          description
                            "Turn off L2 or L3 accounting.";
                        }
    
                        leaf l1-user-defined {
                          type int32 {
                            range "-63..63";
                          }
                          description
                            "User specified value";
                        }
    
                        leaf spi-name {
                          type string {
                            length "0..32";
                          }
                          description
                            "Name of the SPI";
                        }
    
                        leaf policy-merge {
                          type Qos-field-not-supported;
                          description
                            "Not supported (Leave unspecified).";
                        }
    
                        leaf subscriber-parent-policy {
                          type boolean;
                          description
                            "TRUE if service-policy applied on svlan.";
                        }
    
                        leaf resource-id {
                          type uint32 {
                            range "0..3";
                          }
                          description
                            "Resource ID value";
                        }
    
                        leaf service-fragment-parent-policy {
                          type boolean;
                          description
                            "TRUE if service-policy applied is a
    service-fragment policy).";
                        }
                      }  // container subscriber-parent
    
                      leaf service-policy-name {
                        type string {
                          length "0..64";
                        }
                        description
                          "Name of policy-map";
                      }
                    }  // list service-policy-qos
                  }  // container output
    
                  container input {
                    description
                      "Ingress service policy";
                    list service-policy {
                      key "service-policy-name";
                      description
                        "Service policy details";
                      leaf service-policy-name {
                        type string {
                          length "0..64";
                        }
                        description
                          "Name of policy-map";
                      }
    
                      leaf account-type {
                        type Qos-policy-account;
                        description
                          "Turn off L2 or L3 accounting.";
                      }
    
                      leaf l1-user-defined {
                        type int32 {
                          range "-63..63";
                        }
                        description
                          "User specified value";
                      }
    
                      leaf spi-name {
                        type string {
                          length "0..32";
                        }
                        description
                          "Name of the SPI";
                      }
    
                      leaf subscriber-parent-policy {
                        type boolean;
                        description
                          "TRUE if service-policy applied on svlan.";
                      }
    
                      leaf resource-id {
                        type uint32 {
                          range "0..3";
                        }
                        description
                          "Resource ID value";
                      }
    
                      leaf service-fragment-parent-policy {
                        type boolean;
                        description
                          "TRUE if service-policy applied is a
      service-fragment policy).";
                      }
                    }  // list service-policy
    
                    list service-policy-qos {
                      key "service-policy-name";
                      description
                        "Service policy details";
                      container subscriber-group-names {
                        description
                          "Subscriber Group Name Details";
                        list subscriber-group-name {
                          key "subscriber-group-string";
                          description
                            "Subscriber Group details";
                          leaf subscriber-group-string {
                            type string {
                              length "0..64";
                            }
                            description
                              "Name of policy-map";
                          }
    
                          leaf account-type {
                            type Qos-policy-account;
                            description
                              "Turn off L2 or L3 accounting.";
                          }
    
                          leaf l1-user-defined {
                            type int32 {
                              range "-63..63";
                            }
                            description
                              "User specified value";
                          }
    
                          leaf spi-name {
                            type string {
                              length "0..32";
                            }
                            description
                              "Name of the SPI";
                          }
    
                          leaf policy-merge {
                            type Qos-field-not-supported;
                            description
                              "Not supported (Leave unspecified).";
                          }
    
                          leaf subscriber-parent-policy {
                            type boolean;
                            description
                              "TRUE if service-policy applied on svlan.";
                          }
    
                          leaf resource-id {
                            type uint32 {
                              range "0..3";
                            }
                            description
                              "Resource ID value";
                          }
    
                          leaf service-fragment-parent-policy {
                            type boolean;
                            description
                              "TRUE if service-policy applied is a
    service-fragment policy).";
                          }
                        }  // list subscriber-group-name
                      }  // container subscriber-group-names
    
                      container subscriber-parent {
                        presence
                          "Enable feature subscriber-parent";
                        description
                          "Subscriber Parent Details";
                        leaf account-type {
                          type Qos-policy-account;
                          description
                            "Turn off L2 or L3 accounting.";
                        }
    
                        leaf l1-user-defined {
                          type int32 {
                            range "-63..63";
                          }
                          description
                            "User specified value";
                        }
    
                        leaf spi-name {
                          type string {
                            length "0..32";
                          }
                          description
                            "Name of the SPI";
                        }
    
                        leaf policy-merge {
                          type Qos-field-not-supported;
                          description
                            "Not supported (Leave unspecified).";
                        }
    
                        leaf subscriber-parent-policy {
                          type boolean;
                          description
                            "TRUE if service-policy applied on svlan.";
                        }
    
                        leaf resource-id {
                          type uint32 {
                            range "0..3";
                          }
                          description
                            "Resource ID value";
                        }
    
                        leaf service-fragment-parent-policy {
                          type boolean;
                          description
                            "TRUE if service-policy applied is a
    service-fragment policy).";
                        }
                      }  // container subscriber-parent
    
                      leaf service-policy-name {
                        type string {
                          length "0..64";
                        }
                        description
                          "Name of policy-map";
                      }
                    }  // list service-policy-qos
                  }  // container input
                }  // container qos
              }  // container pac
    
              container cac {
                description
                  "Connection Attachment Circuit configuration.";
                container qos {
                  description
                    "Interface QOS configuration";
                  container output {
                    description
                      "Egress service policy";
                    list service-policy {
                      key "service-policy-name";
                      description
                        "Service policy details";
                      leaf service-policy-name {
                        type string {
                          length "0..64";
                        }
                        description
                          "Name of policy-map";
                      }
    
                      leaf account-type {
                        type Qos-policy-account;
                        description
                          "Turn off L2 or L3 accounting.";
                      }
    
                      leaf l1-user-defined {
                        type int32 {
                          range "-63..63";
                        }
                        description
                          "User specified value";
                      }
    
                      leaf spi-name {
                        type string {
                          length "0..32";
                        }
                        description
                          "Name of the SPI";
                      }
    
                      leaf subscriber-parent-policy {
                        type boolean;
                        description
                          "TRUE if service-policy applied on svlan.";
                      }
    
                      leaf resource-id {
                        type uint32 {
                          range "0..3";
                        }
                        description
                          "Resource ID value";
                      }
    
                      leaf service-fragment-parent-policy {
                        type boolean;
                        description
                          "TRUE if service-policy applied is a
      service-fragment policy).";
                      }
                    }  // list service-policy
    
                    list service-policy-qos {
                      key "service-policy-name";
                      description
                        "Service policy details";
                      container subscriber-group-names {
                        description
                          "Subscriber Group Name Details";
                        list subscriber-group-name {
                          key "subscriber-group-string";
                          description
                            "Subscriber Group details";
                          leaf subscriber-group-string {
                            type string {
                              length "0..64";
                            }
                            description
                              "Name of policy-map";
                          }
    
                          leaf account-type {
                            type Qos-policy-account;
                            description
                              "Turn off L2 or L3 accounting.";
                          }
    
                          leaf l1-user-defined {
                            type int32 {
                              range "-63..63";
                            }
                            description
                              "User specified value";
                          }
    
                          leaf spi-name {
                            type string {
                              length "0..32";
                            }
                            description
                              "Name of the SPI";
                          }
    
                          leaf policy-merge {
                            type Qos-field-not-supported;
                            description
                              "Not supported (Leave unspecified).";
                          }
    
                          leaf subscriber-parent-policy {
                            type boolean;
                            description
                              "TRUE if service-policy applied on svlan.";
                          }
    
                          leaf resource-id {
                            type uint32 {
                              range "0..3";
                            }
                            description
                              "Resource ID value";
                          }
    
                          leaf service-fragment-parent-policy {
                            type boolean;
                            description
                              "TRUE if service-policy applied is a
    service-fragment policy).";
                          }
                        }  // list subscriber-group-name
                      }  // container subscriber-group-names
    
                      container subscriber-parent {
                        presence
                          "Enable feature subscriber-parent";
                        description
                          "Subscriber Parent Details";
                        leaf account-type {
                          type Qos-policy-account;
                          description
                            "Turn off L2 or L3 accounting.";
                        }
    
                        leaf l1-user-defined {
                          type int32 {
                            range "-63..63";
                          }
                          description
                            "User specified value";
                        }
    
                        leaf spi-name {
                          type string {
                            length "0..32";
                          }
                          description
                            "Name of the SPI";
                        }
    
                        leaf policy-merge {
                          type Qos-field-not-supported;
                          description
                            "Not supported (Leave unspecified).";
                        }
    
                        leaf subscriber-parent-policy {
                          type boolean;
                          description
                            "TRUE if service-policy applied on svlan.";
                        }
    
                        leaf resource-id {
                          type uint32 {
                            range "0..3";
                          }
                          description
                            "Resource ID value";
                        }
    
                        leaf service-fragment-parent-policy {
                          type boolean;
                          description
                            "TRUE if service-policy applied is a
    service-fragment policy).";
                        }
                      }  // container subscriber-parent
    
                      leaf service-policy-name {
                        type string {
                          length "0..64";
                        }
                        description
                          "Name of policy-map";
                      }
                    }  // list service-policy-qos
                  }  // container output
    
                  container input {
                    description
                      "Ingress service policy";
                    list service-policy {
                      key "service-policy-name";
                      description
                        "Service policy details";
                      leaf service-policy-name {
                        type string {
                          length "0..64";
                        }
                        description
                          "Name of policy-map";
                      }
    
                      leaf account-type {
                        type Qos-policy-account;
                        description
                          "Turn off L2 or L3 accounting.";
                      }
    
                      leaf l1-user-defined {
                        type int32 {
                          range "-63..63";
                        }
                        description
                          "User specified value";
                      }
    
                      leaf spi-name {
                        type string {
                          length "0..32";
                        }
                        description
                          "Name of the SPI";
                      }
    
                      leaf subscriber-parent-policy {
                        type boolean;
                        description
                          "TRUE if service-policy applied on svlan.";
                      }
    
                      leaf resource-id {
                        type uint32 {
                          range "0..3";
                        }
                        description
                          "Resource ID value";
                      }
    
                      leaf service-fragment-parent-policy {
                        type boolean;
                        description
                          "TRUE if service-policy applied is a
      service-fragment policy).";
                      }
                    }  // list service-policy
    
                    list service-policy-qos {
                      key "service-policy-name";
                      description
                        "Service policy details";
                      container subscriber-group-names {
                        description
                          "Subscriber Group Name Details";
                        list subscriber-group-name {
                          key "subscriber-group-string";
                          description
                            "Subscriber Group details";
                          leaf subscriber-group-string {
                            type string {
                              length "0..64";
                            }
                            description
                              "Name of policy-map";
                          }
    
                          leaf account-type {
                            type Qos-policy-account;
                            description
                              "Turn off L2 or L3 accounting.";
                          }
    
                          leaf l1-user-defined {
                            type int32 {
                              range "-63..63";
                            }
                            description
                              "User specified value";
                          }
    
                          leaf spi-name {
                            type string {
                              length "0..32";
                            }
                            description
                              "Name of the SPI";
                          }
    
                          leaf policy-merge {
                            type Qos-field-not-supported;
                            description
                              "Not supported (Leave unspecified).";
                          }
    
                          leaf subscriber-parent-policy {
                            type boolean;
                            description
                              "TRUE if service-policy applied on svlan.";
                          }
    
                          leaf resource-id {
                            type uint32 {
                              range "0..3";
                            }
                            description
                              "Resource ID value";
                          }
    
                          leaf service-fragment-parent-policy {
                            type boolean;
                            description
                              "TRUE if service-policy applied is a
    service-fragment policy).";
                          }
                        }  // list subscriber-group-name
                      }  // container subscriber-group-names
    
                      container subscriber-parent {
                        presence
                          "Enable feature subscriber-parent";
                        description
                          "Subscriber Parent Details";
                        leaf account-type {
                          type Qos-policy-account;
                          description
                            "Turn off L2 or L3 accounting.";
                        }
    
                        leaf l1-user-defined {
                          type int32 {
                            range "-63..63";
                          }
                          description
                            "User specified value";
                        }
    
                        leaf spi-name {
                          type string {
                            length "0..32";
                          }
                          description
                            "Name of the SPI";
                        }
    
                        leaf policy-merge {
                          type Qos-field-not-supported;
                          description
                            "Not supported (Leave unspecified).";
                        }
    
                        leaf subscriber-parent-policy {
                          type boolean;
                          description
                            "TRUE if service-policy applied on svlan.";
                        }
    
                        leaf resource-id {
                          type uint32 {
                            range "0..3";
                          }
                          description
                            "Resource ID value";
                        }
    
                        leaf service-fragment-parent-policy {
                          type boolean;
                          description
                            "TRUE if service-policy applied is a
    service-fragment policy).";
                        }
                      }  // container subscriber-parent
    
                      leaf service-policy-name {
                        type string {
                          length "0..64";
                        }
                        description
                          "Name of policy-map";
                      }
                    }  // list service-policy-qos
                  }  // container input
                }  // container qos
              }  // container cac
    
              container flow-protocols {
                description
                  "Interface netflow configuration";
                list flow-protocol {
                  key "flow-protocol";
                  description
                    "Configure netflow flow protocol";
                  leaf flow-protocol {
                    type Nf-flow-protocol;
                    description
                      "Netflow Flow Protocol";
                  }
    
                  list direction {
                    key "flow-direction";
                    description
                      "Configure netflow flow direction";
                    leaf flow-direction {
                      type Nf-flow-direction;
                      description
                        "Netflow Flow Direction";
                    }
    
                    list monitor-info {
                      key "monitor-map sampler-map";
                      description
                        "Specify a sampler for a flow monitor";
                      leaf monitor-map {
                        type xr:Cisco-ios-xr-string;
                        description
                          "Flow monitor map name";
                      }
    
                      leaf sampler-map {
                        type xr:Cisco-ios-xr-string;
                        description
                          "Sampler map name";
                      }
                    }  // list monitor-info
                  }  // list direction
                }  // list flow-protocol
              }  // container flow-protocols
    
              container span-monitor-sessions {
                status deprecated;
                description
                  "Monitor Session container for this source
    interface";
                list span-monitor-session {
                  key "session-class";
                  description
                    "Configuration for a particular class of Monitor
    Session";
                  leaf session-class {
                    type dt1:Span-session-class;
                    description "Session Class";
                  }
    
                  leaf mirror-first {
                    type uint32 {
                      range "1..10000";
                    }
                    units "byte";
                    description
                      "Mirror a specified number of bytes from start of
    packet";
                  }
    
                  container attachment {
                    presence
                      "Indicates a attachment node is configured.";
                    description
                      "Attach the interface to a Monitor Session";
                    leaf session-name {
                      type dt1:Span-session-name;
                      mandatory true;
                      description "Session Name";
                    }
    
                    leaf direction {
                      type Span-traffic-direction;
                      description
                        "Specify the direction of traffic to replicate
    (optional)";
                    }
    
                    leaf port-level-enable {
                      type empty;
                      description
                        "Enable port level traffic mirroring";
                    }
                  }  // container attachment
    
                  leaf mirror-interval {
                    type Span-mirror-interval;
                    description
                      "Specify the mirror interval";
                  }
    
                  container acl {
                    presence
                      "Indicates a acl node is configured.";
                    description
                      "Enable ACL matching for traffic mirroring";
                    leaf acl-enable {
                      type empty;
                      mandatory true;
                      description "Enable ACL";
                    }
    
                    leaf acl-name {
                      type dt1:Span-acl-name;
                      description "ACL Name";
                    }
                  }  // container acl
    
                  leaf drops {
                    type boolean;
                    description
                      "Specify whether or not to mirror dropped packets";
                  }
    
                  container ipv4acl {
                    presence
                      "Indicates a ipv4acl node is configured.";
                    description
                      "Enable IPv4 ACL matching for traffic mirroring";
                    leaf acl-enable {
                      type empty;
                      mandatory true;
                      description "Enable ACL";
                    }
    
                    leaf acl-name {
                      type dt1:Span-acl-name;
                      description "ACL Name";
                    }
                  }  // container ipv4acl
    
                  container ipv6acl {
                    presence
                      "Indicates a ipv6acl node is configured.";
                    description
                      "Enable IPv6 ACL matching for traffic mirroring";
                    leaf acl-enable {
                      type empty;
                      mandatory true;
                      description "Enable ACL";
                    }
    
                    leaf acl-name {
                      type dt1:Span-acl-name;
                      description "ACL Name";
                    }
                  }  // container ipv6acl
                }  // list span-monitor-session
              }  // container span-monitor-sessions
    
              container span-attachments {
                description
                  "Monitor Session container for this source
    interface";
                list span-attachment {
                  key "session-name";
                  description
                    "Configuration for a particular Monitor Session";
                  leaf session-name {
                    type dt1:Span-session-name;
                    description "Session Name";
                  }
    
                  leaf mirror-first {
                    type uint32 {
                      range "1..10000";
                    }
                    units "byte";
                    description
                      "Mirror a specified number of bytes from start of
    packet";
                  }
    
                  leaf mirror-interval {
                    type Span-mirror-interval;
                    description
                      "Specify the mirror interval";
                  }
    
                  container attachment-config {
                    presence
                      "Indicates a attachment-config node is configured.";
                    description
                      "Attach the interface to a Monitor Session";
                    leaf session-class {
                      type dt1:Span-session-class;
                      mandatory true;
                      description
                        "Traffic class for the session";
                    }
    
                    leaf direction {
                      type Span-traffic-direction;
                      description
                        "Specify the direction of traffic to replicate
    (optional)";
                    }
    
                    leaf port-level-enable {
                      type empty;
                      description
                        "Enable port level traffic mirroring";
                    }
                  }  // container attachment-config
    
                  container acl {
                    presence
                      "Indicates a acl node is configured.";
                    description
                      "Enable ACL matching for traffic mirroring";
                    leaf acl-enable {
                      type empty;
                      mandatory true;
                      description "Enable ACL";
                    }
    
                    leaf acl-name {
                      type dt1:Span-acl-name;
                      description "ACL Name";
                    }
                  }  // container acl
    
                  leaf drops {
                    type boolean;
                    description
                      "Specify whether or not to mirror dropped packets";
                  }
    
                  container ipv4acl {
                    presence
                      "Indicates a ipv4acl node is configured.";
                    description
                      "Enable IPv4 ACL matching for traffic mirroring";
                    leaf acl-enable {
                      type empty;
                      mandatory true;
                      description "Enable ACL";
                    }
    
                    leaf acl-name {
                      type dt1:Span-acl-name;
                      description "ACL Name";
                    }
                  }  // container ipv4acl
    
                  container ipv6acl {
                    presence
                      "Indicates a ipv6acl node is configured.";
                    description
                      "Enable IPv6 ACL matching for traffic mirroring";
                    leaf acl-enable {
                      type empty;
                      mandatory true;
                      description "Enable ACL";
                    }
    
                    leaf acl-name {
                      type dt1:Span-acl-name;
                      description "ACL Name";
                    }
                  }  // container ipv6acl
                }  // list span-attachment
              }  // container span-attachments
            }  // container l2-transport
    
            leaf user-network-interface {
              type string {
                length "1..64";
              }
              description
                "User-Network Interface ID";
            }
    
            container vlan-sub-configuration {
              description
                "IEEE 802.1Q VLAN subinterface configuration";
              container vlan-identifier {
                presence
                  "Indicates a vlan-identifier node is configured.";
                description
                  "The VLAN tag stack associated with this
    sub-interface.";
                leaf vlan-type {
                  type dt1:Vlan;
                  mandatory true;
                  description
                    "Whether this sub-interface is dot1ad or dot1Q";
                }
    
                leaf first-tag {
                  type dt1:Vlan-tag;
                  mandatory true;
                  description
                    "First (outermost) VLAN tag value";
                }
    
                leaf second-tag {
                  type dt1:Vlan-tag-or-null;
                  description
                    "Second VLAN tag value. The any value may only
    be used for Layer 2 subinterfaces";
                }
              }  // container vlan-identifier
            }  // container vlan-sub-configuration
    
            container ethernet-service {
              description
                "Ethernet service configuration";
              container local-traffic-default-encapsulation {
                presence
                  "Indicates a local-traffic-default-encapsulation node is configured.";
                description
                  "The default encapsulation to be used for
    locally-sourced packets";
                leaf outer-tag-type {
                  type dt1:Vlan;
                  mandatory true;
                  description
                    "Type of outer tag";
                }
    
                leaf outer-vlan-id {
                  type dt1:Vlan-tag;
                  mandatory true;
                  description
                    "VLAN id for outer tag";
                }
    
                leaf inner-vlan-id {
                  type dt1:Vlan-tag;
                  description
                    "Optional VLAN Id for inner Dot1Q tag";
                }
              }  // container local-traffic-default-encapsulation
    
              container encapsulation {
                presence
                  "Indicates a encapsulation node is configured.";
                description
                  "The encapsulation of this Ethernet service";
                leaf outer-tag-type {
                  type dt1:Match;
                  mandatory true;
                  description
                    "Whether to match all unmatched packets,
    untagged packets or tagged packets, and if
    matching tagged packets, the outer tag type to
    match";
                }
    
                leaf outer-range1-low {
                  type dt1:Vlan-tag-or-any;
                  description
                    "Low value of first range for outer tag match";
                }
    
                leaf outer-range1-high {
                  type dt1:Vlan-tag-or-native;
                  description
                    "High value of first range for outer tag match";
                }
    
                leaf inner-tag-type {
                  type dt1:Match;
                  description
                    "Type of tag for inner match (if present)";
                }
    
                leaf inner-range1-low {
                  type dt1:Vlan-tag-or-any;
                  description
                    "Low value of first range for inner tag match";
                }
    
                leaf inner-range1-high {
                  type dt1:Vlan-tag;
                  description
                    "High value of first range for inner tag match";
                }
    
                leaf additional-range1-low {
                  type dt1:Vlan-tag-or-cvp;
                  description
                    "Low value of first additional range for tag
    match";
                }
    
                leaf additional-range1-high {
                  type dt1:Vlan-tag;
                  description
                    "High value of first additional range for tag
    match";
                }
    
                leaf additional-range2-low {
                  type dt1:Vlan-tag-or-cvp;
                  description
                    "Low value of second additional range for tag
    match";
                }
    
                leaf additional-range2-high {
                  type dt1:Vlan-tag;
                  description
                    "High value of second additional range for tag
    match";
                }
    
                leaf additional-range3-low {
                  type dt1:Vlan-tag-or-cvp;
                  description
                    "Low value of third additional range for tag
    match";
                }
    
                leaf additional-range3-high {
                  type dt1:Vlan-tag;
                  description
                    "High value of third additional range for tag
    match";
                }
    
                leaf additional-range4-low {
                  type dt1:Vlan-tag-or-cvp;
                  description
                    "Low value of forth additional range for tag
    match";
                }
    
                leaf additional-range4-high {
                  type dt1:Vlan-tag;
                  description
                    "High value of forth additional range for tag
    match";
                }
    
                leaf additional-range5-low {
                  type dt1:Vlan-tag-or-cvp;
                  description
                    "Low value of fifth additional range for tag
    match";
                }
    
                leaf additional-range5-high {
                  type dt1:Vlan-tag;
                  description
                    "High value of fifth additional range for tag
    match";
                }
    
                leaf additional-range6-low {
                  type dt1:Vlan-tag-or-cvp;
                  description
                    "Low value of sixth additional range for tag
    match";
                }
    
                leaf additional-range6-high {
                  type dt1:Vlan-tag;
                  description
                    "High value of sixth additional range for tag
    match";
                }
    
                leaf additional-range7-low {
                  type dt1:Vlan-tag-or-cvp;
                  description
                    "Low value of seventh additional range for tag
    match";
                }
    
                leaf additional-range7-high {
                  type dt1:Vlan-tag;
                  description
                    "High value of seventh additional range for tag
    match";
                }
    
                leaf additional-range8-low {
                  type dt1:Vlan-tag-or-cvp;
                  description
                    "Low value of eighth additional range for tag
    match";
                }
    
                leaf additional-range8-high {
                  type dt1:Vlan-tag;
                  description
                    "High value of eighth additional range for tag
    match";
                }
    
                leaf outer-class-of-service {
                  type dt1:Class-of-service;
                  description
                    "Value to match against Class Of Service bits
    for outer tag";
                }
    
                leaf inner-class-of-service {
                  type dt1:Class-of-service;
                  description
                    "Value to match against Class Of Service bits
    for inner tag";
                }
    
                leaf payload-ethertype-match {
                  type dt1:Ethertype-match;
                  description
                    "Which payload ethertype values to match";
                }
    
                leaf ingress-source-mac {
                  type yang:mac-address;
                  description
                    "Source MAC address to match on ingress";
                }
    
                leaf ingress-destination-mac {
                  type yang:mac-address;
                  description
                    "Destination MAC address to match on egress";
                }
    
                leaf exact {
                  type empty;
                  description
                    "Only match packets with no more tags than
    explicitly matched";
                }
              }  // container encapsulation
    
              container rewrite {
                presence
                  "Indicates a rewrite node is configured.";
                description
                  "The rewrite operation for the Ethernet service";
                leaf rewrite-type {
                  type dt1:Rewrite;
                  mandatory true;
                  description
                    "The type of rewrite to perform";
                }
    
                leaf outer-tag-type {
                  type dt1:Match;
                  description
                    "Type of outermost tag to be pushed";
                }
    
                leaf outer-tag-value {
                  type dt1:Vlan-tag;
                  description
                    "VLAN Id of outermost tag to be pushed";
                }
    
                leaf inner-tag-type {
                  type dt1:Match;
                  description
                    "Type of innermost tag to be pushed";
                }
    
                leaf inner-tag-value {
                  type dt1:Vlan-tag;
                  description
                    "VLAN Id of innermost tag to be pushed";
                }
              }  // container rewrite
            }  // container ethernet-service
    
            container ethernet-bng {
              description
                "Ethernet Infra BNG specific configuration";
              container ambiguous-encapsulation {
                presence
                  "Indicates a ambiguous-encapsulation node is configured.";
                description
                  "L3 Ambiguous encapsulation";
                leaf outer-tag-type {
                  type dt1:Match;
                  mandatory true;
                  description
                    "Whether to match all unmatched packets,
    untagged packets or tagged packets, and if
    matching tagged packets, the outer tag type to
    match";
                }
    
                leaf outer-range1-low {
                  type dt1:Vlan-tag-or-any;
                  description
                    "Low value of first range for outer tag match";
                }
    
                leaf outer-range1-high {
                  type dt1:Vlan-tag-or-native;
                  description
                    "High value of first range for outer tag match";
                }
    
                leaf inner-tag-type {
                  type dt1:Match;
                  description
                    "Type of tag for inner match (if present)";
                }
    
                leaf inner-range1-low {
                  type dt1:Vlan-tag-or-any;
                  description
                    "Low value of first range for inner tag match";
                }
    
                leaf inner-range1-high {
                  type dt1:Vlan-tag;
                  description
                    "High value of first range for inner tag match";
                }
    
                leaf additional-range1-low {
                  type dt1:Vlan-tag-or-cvp;
                  description
                    "Low value of first additional range for tag
    match";
                }
    
                leaf additional-range1-high {
                  type dt1:Vlan-tag;
                  description
                    "High value of first additional range for tag
    match";
                }
    
                leaf additional-range2-low {
                  type dt1:Vlan-tag-or-cvp;
                  description
                    "Low value of second additional range for tag
    match";
                }
    
                leaf additional-range2-high {
                  type dt1:Vlan-tag;
                  description
                    "High value of second additional range for tag
    match";
                }
    
                leaf additional-range3-low {
                  type dt1:Vlan-tag-or-cvp;
                  description
                    "Low value of third additional range for tag
    match";
                }
    
                leaf additional-range3-high {
                  type dt1:Vlan-tag;
                  description
                    "High value of third additional range for tag
    match";
                }
    
                leaf additional-range4-low {
                  type dt1:Vlan-tag-or-cvp;
                  description
                    "Low value of forth additional range for tag
    match";
                }
    
                leaf additional-range4-high {
                  type dt1:Vlan-tag;
                  description
                    "High value of forth additional range for tag
    match";
                }
    
                leaf additional-range5-low {
                  type dt1:Vlan-tag-or-cvp;
                  description
                    "Low value of fifth additional range for tag
    match";
                }
    
                leaf additional-range5-high {
                  type dt1:Vlan-tag;
                  description
                    "High value of fifth additional range for tag
    match";
                }
    
                leaf additional-range6-low {
                  type dt1:Vlan-tag-or-cvp;
                  description
                    "Low value of sixth additional range for tag
    match";
                }
    
                leaf additional-range6-high {
                  type dt1:Vlan-tag;
                  description
                    "High value of sixth additional range for tag
    match";
                }
    
                leaf additional-range7-low {
                  type dt1:Vlan-tag-or-cvp;
                  description
                    "Low value of seventh additional range for tag
    match";
                }
    
                leaf additional-range7-high {
                  type dt1:Vlan-tag;
                  description
                    "High value of seventh additional range for tag
    match";
                }
    
                leaf additional-range8-low {
                  type dt1:Vlan-tag-or-cvp;
                  description
                    "Low value of eighth additional range for tag
    match";
                }
    
                leaf additional-range8-high {
                  type dt1:Vlan-tag;
                  description
                    "High value of eighth additional range for tag
    match";
                }
    
                leaf outer-class-of-service {
                  type dt1:Class-of-service;
                  description
                    "Value to match against Class Of Service bits
    for outer tag";
                }
    
                leaf inner-class-of-service {
                  type dt1:Class-of-service;
                  description
                    "Value to match against Class Of Service bits
    for inner tag";
                }
    
                leaf payload-ethertype-match {
                  type dt1:Ethertype-match;
                  description
                    "Which payload ethertype values to match";
                }
    
                leaf ingress-source-mac {
                  type yang:mac-address;
                  description
                    "Source MAC address to match on ingress";
                }
    
                leaf ingress-destination-mac {
                  type yang:mac-address;
                  description
                    "Destination MAC address to match on egress";
                }
    
                leaf exact {
                  type empty;
                  description
                    "Only match packets with no more tags than
    explicitly matched";
                }
              }  // container ambiguous-encapsulation
            }  // container ethernet-bng
    
            container mac-accounting {
              description
                "MAC Accounting Configuration";
              leaf ingress {
                type empty;
                description
                  "Per MAC address accounting statistics";
              }
    
              leaf egress {
                type empty;
                description
                  "Per MAC address accounting statistics";
              }
            }  // container mac-accounting
    
            container ethernet-features {
              description
                "Ethernet Features Configuration";
              leaf filtering {
                type Filtering;
                description
                  "Ingress Ethernet frame filtering";
              }
    
              leaf ether-link-oam-enable {
                type empty;
                description
                  "Enable Ethernet Link OAM on the interface";
              }
    
              container ether-link-oam {
                description
                  "Ethernet Link OAM Interface Configuration";
                container action {
                  description
                    "Configure action parameters";
                  leaf dying-gasp {
                    type Ether-link-oam-event-action-enum;
                    description
                      "Action to perform when a dying gasp occurs";
                  }
    
                  leaf link-fault {
                    type Ether-link-oam-event-action-enum-efd;
                    description
                      "Action to perform when a link fault occurs";
                  }
    
                  leaf capabilities-conflict {
                    type Ether-link-oam-event-action-enum-efd;
                    description
                      "Action to perform when a capabilities conflict
    occurs";
                  }
    
                  leaf session-up {
                    type Ether-link-oam-event-action-prim-enum;
                    description
                      "Action to perform when a session comes up";
                  }
    
                  leaf critical-event {
                    type Ether-link-oam-event-action-enum;
                    description
                      "Action to perform when a critical event occurs";
                  }
    
                  leaf remote-loopback {
                    type Ether-link-oam-event-action-prim-enum;
                    description
                      "Action to perform when remote loopback is
    entered or exited";
                  }
    
                  leaf wiring-conflict {
                    type Ether-link-oam-event-action-enum-efd;
                    description
                      "Action to perform when a wiring conflict
    occurs";
                  }
    
                  leaf high-threshold {
                    type Ether-link-oam-event-action-enum;
                    description
                      "Action to perform when a high-threshold event
    occurs";
                  }
    
                  leaf discovery-timeout {
                    type Ether-link-oam-event-action-enum-efd;
                    description
                      "Action to perform when discovery timeout
    occurs";
                  }
    
                  leaf session-down {
                    type Ether-link-oam-event-action-enum-efd;
                    description
                      "Action to perform when a session comes down";
                  }
                }  // container action
    
                container require-remote {
                  description
                    "Configure remote requirement parameters";
                  leaf mode {
                    type Ether-link-oam-require-mode-enum;
                    description
                      "Possible required peer modes";
                  }
    
                  leaf mib-retrieval {
                    type boolean;
                    description
                      "Enable or disable MIB retrieval peer
    requirement";
                  }
    
                  leaf remote-loopback {
                    type boolean;
                    description
                      "Enable or disable remote loopback peer
    requirement";
                  }
    
                  leaf link-monitoring {
                    type boolean;
                    description
                      "Enable or disable link monitoring peer
    requirement";
                  }
                }  // container require-remote
    
                leaf timeout {
                  type uint32 {
                    range "2..30";
                  }
                  description
                    "Connection timeout period in number of lost
    heartbeats";
                }
    
                leaf mode {
                  type Ether-link-oam-mode-enum;
                  description
                    "Possible Ethernet Link OAM modes";
                }
    
                leaf mib-retrieval {
                  type boolean;
                  description
                    "Enable or disable MIB retrieval";
                }
    
                leaf profile-name {
                  type string;
                  description
                    "Set the profile to use on the interface";
                }
    
                leaf remote-loopback {
                  type boolean;
                  description
                    "Enable or disable remote loopback";
                }
    
                leaf hello-interval {
                  type Ether-link-oam-hello-interval-enum;
                  description
                    "Possible Ethernet Link OAM hello intervals";
                }
    
                leaf udlf {
                  type boolean;
                  description
                    "Enable or disable uni-directional link-fault
    detection";
                }
    
                container link-monitoring {
                  description
                    "Configure link monitor parameters";
                  container symbol-period {
                    description
                      "Symbol-period event configuration";
                    container window {
                      presence
                        "Indicates a window node is configured.";
                      description
                        "Window size configuration for symbol-period
    events";
                      leaf window {
                        type uint32 {
                          range "1..4294967295";
                        }
                        mandatory true;
                        description
                          "Size of the symbol-period window";
                      }
    
                      leaf units {
                        type Ether-link-oam-window-units-symbols-enum;
                        mandatory true;
                        description
                          "Units to use for this window";
                      }
    
                      leaf multiplier {
                        type Ether-link-oam-threshold-window-multiplier-enum;
                        default "none";
                        description
                          "The multiplier to use for this window (only
    valid if 'Units' is Symbols and treated as 1
    if unspecified)";
                      }
                    }  // container window
    
                    container threshold {
                      description
                        "Threshold configuration for symbol-period
    events";
                      leaf threshold-low {
                        type uint32 {
                          range "1..4294967295";
                        }
                        must "../units";
                        default "1";
                        description
                          "The low threshold for symbol-period";
                      }
    
                      leaf threshold-high {
                        type uint32 {
                          range "1..4294967295";
                        }
                        must "../units";
                        description
                          "The high threshold for symbol-period";
                      }
    
                      leaf units {
                        type Ether-link-oam-threshold-units-symbols-enum;
                        must
                          "../threshold-low or (../threshold-low and ../multiplier-low) or ../threshold-high or (../threshold-high and ../multiplier-high) or (../threshold-low and ../threshold-high) or (../threshold-low and ../threshold-high and ../multiplier-low) or (../threshold-low and ../threshold-high and ../multiplier-high) or (../threshold-low and ../threshold-high and ../multiplier-low and ../multiplier-high)";
                        default "symbols";
                        description
                          "The units to use for these thresholds";
                      }
    
                      leaf multiplier-low {
                        type Ether-link-oam-threshold-window-multiplier-enum;
                        must
                          "../threshold-low and ../units";
                        default "none";
                        description
                          "The multiplier to use for the low threshold
    (only valid if 'Units' is Symbols and treated
    as 1 if unspecified)";
                      }
    
                      leaf multiplier-high {
                        type Ether-link-oam-threshold-window-multiplier-enum;
                        must
                          "../threshold-high and ../units";
                        description
                          "The multiplier to use for the high threshold
    (only valid if 'Units' is Symbols and treated
    as 1 if unspecified)";
                      }
                    }  // container threshold
                  }  // container symbol-period
    
                  container frame-period {
                    description
                      "Frame-period event configuration";
                    container window {
                      presence
                        "Indicates a window node is configured.";
                      description
                        "Window size configuration for frame-period
    events";
                      leaf window {
                        type uint32 {
                          range "1..4294967295";
                        }
                        mandatory true;
                        description
                          "Size of the frame-period window";
                      }
    
                      leaf units {
                        type Ether-link-oam-window-units-frames-enum;
                        mandatory true;
                        description
                          "The units to use for this window";
                      }
    
                      leaf multiplier {
                        type Ether-link-oam-threshold-window-multiplier-enum;
                        default "none";
                        description
                          "The multiplier to use for this window (only
    valid if 'Units' is Frames and treated as 1
    if unspecified)";
                      }
                    }  // container window
    
                    container threshold {
                      description
                        "Threshold configuration for frame-period
    events";
                      leaf threshold-low {
                        type uint32 {
                          range "1..4294967295";
                        }
                        must "../units";
                        default "1";
                        description
                          "The low threshold for frame-period events";
                      }
    
                      leaf threshold-high {
                        type uint32 {
                          range "1..4294967295";
                        }
                        must "../units";
                        description
                          "The high threshold for frame-period events";
                      }
    
                      leaf units {
                        type Ether-link-oam-threshold-units-frames-enum;
                        must
                          "../threshold-low or (../threshold-low and ../multiplier-low) or ../threshold-high or (../threshold-high and ../multiplier-high) or (../threshold-low and ../threshold-high) or (../threshold-low and ../threshold-high and ../multiplier-low) or (../threshold-low and ../threshold-high and ../multiplier-high) or (../threshold-low and ../threshold-high and ../multiplier-low and ../multiplier-high)";
                        default "ppm";
                        description
                          "The units to use for these thresholds";
                      }
    
                      leaf multiplier-low {
                        type Ether-link-oam-threshold-window-multiplier-enum;
                        must
                          "../threshold-low and ../units";
                        default "none";
                        description
                          "The multiplier to use for the low threshold
    (only valid if 'Units' is Frames and treated
    as 1 if unspecified)";
                      }
    
                      leaf multiplier-high {
                        type Ether-link-oam-threshold-window-multiplier-enum;
                        must
                          "../threshold-high and ../units";
                        description
                          "The multiplier to use for the high threshold
    (only valid if 'Units' is Frames and treated
    as 1 if unspecified)";
                      }
                    }  // container threshold
                  }  // container frame-period
    
                  container frame-seconds {
                    description
                      "Frame-seconds event configuration";
                    container threshold {
                      description
                        "Threshold configuration for frame-seconds
    events";
                      leaf threshold-low {
                        type uint32 {
                          range "1..900";
                        }
                        units "second";
                        default "1";
                        description
                          "The low threshold for frame-seconds events";
                      }
    
                      leaf threshold-high {
                        type uint32 {
                          range "1..900";
                        }
                        units "second";
                        description
                          "The high threshold for frame-seconds events";
                      }
                    }  // container threshold
    
                    leaf window {
                      type uint32 {
                        range "10000..900000";
                      }
                      units "millisecond";
                      default "60000";
                      description
                        "Window size configuration for frame-seconds
    events";
                    }
                  }  // container frame-seconds
    
                  container frame {
                    description
                      "Frame event configuration";
                    container threshold {
                      description
                        "Threshold configuration for frame events";
                      leaf threshold-low {
                        type uint32 {
                          range "1..4294967295";
                        }
                        default "1";
                        description
                          "The low threshold for frame events";
                      }
    
                      leaf threshold-high {
                        type uint32 {
                          range "1..4294967295";
                        }
                        description
                          "The high threshold for frame events";
                      }
    
                      leaf multiplier-low {
                        type Ether-link-oam-threshold-window-multiplier-enum;
                        must "../threshold-low";
                        default "none";
                        description
                          "The multiplier to use for the low threshold
    (treated as 1 if unspecified)";
                      }
    
                      leaf multiplier-high {
                        type Ether-link-oam-threshold-window-multiplier-enum;
                        must "../threshold-high";
                        description
                          "The multiplier to use for the high threshold
    (treated as 1 if unspecified)";
                      }
                    }  // container threshold
    
                    leaf window {
                      type uint32 {
                        range "1000..60000";
                      }
                      units "millisecond";
                      default "1000";
                      description
                        "Window size configuration for frame events";
                    }
                  }  // container frame
    
                  leaf monitoring {
                    type boolean;
                    description
                      "Enable or disable monitoring";
                  }
                }  // container link-monitoring
              }  // container ether-link-oam
    
              container cfm {
                description
                  "CFM interface configuration";
                container domains {
                  description
                    "Domain-specific interface configuration";
                  list domain {
                    key "domain";
                    description
                      "Configuration for a particular Maintenance
    Domain";
                    container mep {
                      description
                        "MEP Configuration";
                      container sla-profile-target-mep-ids {
                        description
                          "SLA specific configuration";
                        list sla-profile-target-mep-id {
                          key "profile target-mep-id";
                          description
                            "Configuration for a particular SLA
    operation";
                          leaf profile {
                            type xr:Cisco-ios-xr-string;
                            description
                              "SLA profile name";
                          }
    
                          leaf target-mep-id {
                            type dt1:Cfm-mep-id;
                            description
                              "Target MEP-ID";
                          }
                        }  // list sla-profile-target-mep-id
    
                        list sla-profile-target-mac-address {
                          key "profile target-mac-address";
                          description
                            "Configuration for a particular SLA
    operation";
                          leaf profile {
                            type xr:Cisco-ios-xr-string;
                            description
                              "SLA profile name";
                          }
    
                          leaf target-mac-address {
                            type yang:mac-address;
                            description
                              "Target MAC address";
                          }
                        }  // list sla-profile-target-mac-address
                      }  // container sla-profile-target-mep-ids
    
                      container mep-properties {
                        presence
                          "Indicates a mep-properties node is configured.";
                        description
                          "Properties for this MEP";
                        leaf service {
                          type string {
                            length "1..127";
                          }
                          mandatory true;
                          description
                            "Service (Maintenance Association)";
                        }
    
                        leaf mep-id {
                          type dt1:Cfm-mep-id;
                          mandatory true;
                          description "MEP ID";
                        }
                      }  // container mep-properties
    
                      container loss-measurement-counters {
                        presence
                          "Indicates a loss-measurement-counters node is configured.";
                        description
                          "Loss-measurement specific configuration";
                        leaf cfg-type {
                          type Cfm-lm-counters-cfg;
                          mandatory true;
                          description
                            "Aggregate, List, or Range";
                        }
    
                        leaf cos0 {
                          type dt1:Cfm-cos-bits;
                          description
                            "CoS bits for per-CoS counters - start of
    range or list item";
                        }
    
                        leaf cos1 {
                          type dt1:Cfm-cos-bits;
                          description
                            "CoS bits for per-CoS counters - end of
    range or list item";
                        }
    
                        leaf cos2 {
                          type dt1:Cfm-cos-bits;
                          description
                            "CoS bits for per-CoS counters - list item";
                        }
    
                        leaf cos3 {
                          type dt1:Cfm-cos-bits;
                          description
                            "CoS bits for per-CoS counters - list item";
                        }
    
                        leaf cos4 {
                          type dt1:Cfm-cos-bits;
                          description
                            "CoS bits for per-CoS counters - list item";
                        }
    
                        leaf cos5 {
                          type dt1:Cfm-cos-bits;
                          description
                            "CoS bits for per-CoS counters - list item";
                        }
    
                        leaf cos6 {
                          type dt1:Cfm-cos-bits;
                          description
                            "CoS bits for per-CoS counters - list item";
                        }
    
                        leaf cos7 {
                          type dt1:Cfm-cos-bits;
                          description
                            "CoS bits for per-CoS counters - list item";
                        }
                      }  // container loss-measurement-counters
    
                      leaf llf {
                        type empty;
                        description
                          "Enable interface TX-disable on remote fault
    detection for this MEP";
                      }
    
                      leaf cos {
                        type dt1:Cfm-cos-bits;
                        description
                          "The Class of Service bits for this MEP";
                      }
                    }  // container mep
    
                    leaf domain {
                      type string {
                        length "1..127";
                      }
                      description
                        "Maintenance Domain";
                    }
                  }  // list domain
                }  // container domains
    
                container ais-up {
                  description
                    "Interface specific AIS configuration";
                  container transmission {
                    presence
                      "enable transmission";
                    description
                      "AIS transmission configuration";
                    leaf ais-interval {
                      type dt1:Cfm-ais-interval;
                      description "AIS Interval";
                    }
    
                    leaf cos {
                      type dt1:Cfm-cos-bits;
                      description
                        "Class of Service bits";
                    }
                  }  // container transmission
                }  // container ais-up
    
                container bandwidth-notifications {
                  description
                    "Bandwidth Notification configuration";
                  leaf wait-to-restore {
                    type dt1:Cfm-bnm-wtr;
                    default "10";
                    description
                      "Wait-to-restore time (in seconds)";
                  }
    
                  leaf log-changes {
                    type empty;
                    description
                      "Enable logging of bandwidth changes";
                  }
    
                  leaf hold-off {
                    type dt1:Cfm-bnm-hold-off;
                    default "0";
                    description
                      "Hold-off time (in seconds)";
                  }
    
                  leaf loss-threshold {
                    type dt1:Cfm-bnm-loss-threshold;
                    default "3";
                    description
                      "Loss Threshold (in number of BNMs)";
                  }
                }  // container bandwidth-notifications
              }  // container cfm
    
              container ethernet-loopback {
                description
                  "Ethernet Loopback configuration data";
                container remote {
                  description
                    "This object acts as a container for the
    permission of remote-initiated external and
    internal loopback on a local interface.";
                  leaf internal {
                    type empty;
                    description
                      "Allow remote controllers to initiate latching
    loopback operations (internal loopback) on
    this interface.";
                  }
    
                  leaf external {
                    type empty;
                    description
                      "Allow remote controllers to initiate latching
    loopback operations (external loopback) on
    this interface.";
                  }
    
                  leaf log-changes {
                    type empty;
                    description
                      "Triggers a syslog on latching loopback
    activation and deactivation.";
                  }
                }  // container remote
    
                container permit {
                  description
                    "This object acts as a container for the
    permission of external and internal loopback on
    an interface.";
                  leaf internal {
                    type empty;
                    description
                      "Allow internal loopback to be enabled on this
    interface.";
                  }
    
                  leaf external {
                    type empty;
                    description
                      "Allow external loopback to be enabled on this
    interface.";
                  }
                }  // container permit
    
                leaf latching-loopback-controller {
                  type empty;
                  description
                    "Allow latching loopback sessions on remote
    devices to be managed from this interface.";
                }
              }  // container ethernet-loopback
            }  // container ethernet-features
    
            container carrier-delay {
              description
                "Set the carrier transition delay on an interface
    in msecs";
              leaf carrier-delay-up {
                type uint32 {
                  range "1..65535";
                }
                description
                  "Carrier Delay (up) in msecs";
              }
    
              leaf carrier-delay-down {
                type uint32 {
                  range "0";
                }
                description
                  "Carrier Delay down in msecs, must be set to 0";
              }
            }  // container carrier-delay
    
            container vlan-trunk-configuration {
              description
                "IEEE 802.1Q VLAN trunk interface configuration";
              container native-vlan-identifier {
                presence
                  "Indicates a native-vlan-identifier node is configured.";
                description
                  "The Native VLAN identifier associated with this
    trunk interface";
                leaf vlan-type {
                  type dt1:Vlan;
                  mandatory true;
                  description
                    "Whether this interface is dot1ad or dot1Q";
                }
    
                leaf vlan-identifier {
                  type dt1:Vlan-tag;
                  mandatory true;
                  description "VLAN identifier";
                }
              }  // container native-vlan-identifier
    
              container vlan-switched {
                description
                  "VLAN Switch interface configuration";
                leaf mode {
                  type dt1:Vs-mode;
                  description "VLAN Switch mode";
                }
    
                leaf access-vlan {
                  when "../mode = 'access'" {
                    description
                      "../Mode = Access";
                  }
                  type dt1:Vlan-tag;
                  description "Access VLAN Id";
                }
    
                leaf trunk-tag-type {
                  when "../mode = 'trunk'" {
                    description
                      "../Mode = Trunk";
                  }
                  type dt1:Vlan;
                  description
                    "Whether to match dot1ad or dot1Q packets";
                }
    
                leaf trunk-vla-ns {
                  when "../mode = 'trunk'" {
                    description
                      "../Mode = Trunk";
                  }
                  type string;
                  description
                    "Comma-separated, increasing sequence of VLAN
    Ids or VLAN ranges";
                }
              }  // container vlan-switched
    
              leaf tunneling-ethertype {
                type enumeration {
                  enum "0x9100" {
                    value 37120;
                    description "0x9100";
                  }
                  enum "0x9200" {
                    value 37376;
                    description "0x9200";
                  }
                }
                description
                  "The outer ethertype used in Q-in-Q frames. The
    default value is 0x8100";
              }
            }  // container vlan-trunk-configuration
    
            container nv-satellite-access {
              description
                "nV Satellite Access Link Configuration";
              container qos {
                description
                  "Interface QOS configuration";
                container output {
                  description
                    "Egress service policy";
                  list service-policy {
                    key "service-policy-name";
                    description
                      "Service policy details";
                    leaf service-policy-name {
                      type xr:Cisco-ios-xr-string {
                        length "0..64";
                      }
                      description
                        "Name of policy-map";
                    }
                  }  // list service-policy
                }  // container output
    
                container input {
                  description
                    "Ingress service policy";
                  list service-policy {
                    key "service-policy-name";
                    description
                      "Service policy details";
                    leaf service-policy-name {
                      type xr:Cisco-ios-xr-string {
                        length "0..64";
                      }
                      description
                        "Name of policy-map";
                    }
                  }  // list service-policy
                }  // container input
              }  // container qos
            }  // container nv-satellite-access
    
            container nv-satellite-fabric-link {
              presence
                "Indicates a nv-satellite-fabric-link node is configured.";
              description
                "nV Satellite Fabric Link Configuration";
              leaf satellite {
                type Icpe-sat-id;
                mandatory true;
                description
                  "Hub & Spoke connection to a single Satellite";
              }
    
              leaf minimum-required-links {
                type Icpe-min-links;
                description
                  "Mininum number of active links required";
              }
    
              container redundancy {
                description "Redundancy submode";
                leaf iccp-group {
                  type uint32 {
                    range "0..4294967295";
                  }
                  description
                    "Links the satellite fabric to the given ICCP
    group";
                }
    
                leaf minimum-preferred-links {
                  type Icpe-min-links;
                  description
                    "Mininum number of active links preferred";
                }
              }  // container redundancy
    
              container remote-ports {
                description "Remote Ports table";
                list remote-port {
                  key "port-type slot sub-slot";
                  description "Remote Ports";
                  leaf port-type {
                    type xr:Cisco-ios-xr-string;
                    description "Port type";
                  }
    
                  leaf slot {
                    type Icpe-slot;
                    description "Slot";
                  }
    
                  leaf sub-slot {
                    type Icpe-subslot;
                    description "Sub slot";
                  }
    
                  leaf port-range {
                    type string;
                    mandatory true;
                    description "Port range";
                  }
                }  // list remote-port
              }  // container remote-ports
    
              container frequency-synchronization {
                presence
                  "CLI submode compatibility.";
                description
                  "Frequency Synchronization satellite
    configuration";
                leaf enable {
                  type empty;
                  description
                    "Enable Frequency Synchronization";
                }
              }  // container frequency-synchronization
    
              container qos {
                description
                  "Interface QOS configuration";
                container output {
                  description
                    "Egress service policy";
                  list service-policy {
                    key "service-policy-name";
                    description
                      "Service policy details";
                    leaf service-policy-name {
                      type xr:Cisco-ios-xr-string {
                        length "0..64";
                      }
                      description
                        "Name of policy-map";
                    }
                  }  // list service-policy
                }  // container output
    
                container input {
                  description
                    "Ingress service policy";
                  list service-policy {
                    key "service-policy-name";
                    description
                      "Service policy details";
                    leaf service-policy-name {
                      type xr:Cisco-ios-xr-string {
                        length "0..64";
                      }
                      description
                        "Name of policy-map";
                    }
                  }  // list service-policy
                }  // container input
              }  // container qos
    
              container ethernet-features {
                description
                  "Ethernet Satellite configuration";
                container cfm {
                  description
                    "CFM Satellite configuration";
                  leaf continuity-check-interval {
                    type dt1:Cfm-ccm-interval;
                    description
                      "Continuity-Check Interval";
                  }
    
                  leaf level {
                    type dt1:Cfm-level;
                    description
                      "Maintenance Domain Level";
                  }
    
                  leaf enable {
                    type empty;
                    description
                      "Enable CFM on Satellite";
                  }
                }  // container cfm
              }  // container ethernet-features
            }  // container nv-satellite-fabric-link
    
            container nv-satellite-fabric-network {
              presence
                "Indicates a nv-satellite-fabric-network node is configured.";
              description
                "Complex Network connection to one or more
    Satellites";
              container satellites {
                description
                  "Connected Satellite table";
                list satellite {
                  key "satellite-id";
                  description
                    "Connected Satellite";
                  leaf satellite-id {
                    type Icpe-sat-id;
                    description "Satellite ID";
                  }
    
                  container remote-ports {
                    description
                      "Remote Ports table";
                    list remote-port {
                      key "port-type slot sub-slot";
                      description "Remote Ports";
                      leaf port-type {
                        type xr:Cisco-ios-xr-string;
                        description "Port type";
                      }
    
                      leaf slot {
                        type Icpe-slot;
                        description "Slot";
                      }
    
                      leaf sub-slot {
                        type Icpe-subslot;
                        description "Sub slot";
                      }
    
                      leaf port-range {
                        type string;
                        mandatory true;
                        description "Port range";
                      }
                    }  // list remote-port
                  }  // container remote-ports
    
                  leaf enable {
                    type empty;
                    mandatory true;
                    description "Enable";
                  }
                }  // list satellite
    
                container qos {
                  description
                    "Interface QOS configuration";
                  container output {
                    description
                      "Egress service policy";
                    list service-policy {
                      key "service-policy-name";
                      description
                        "Service policy details";
                      leaf service-policy-name {
                        type xr:Cisco-ios-xr-string {
                          length "0..64";
                        }
                        description
                          "Name of policy-map";
                      }
                    }  // list service-policy
                  }  // container output
    
                  container input {
                    description
                      "Ingress service policy";
                    list service-policy {
                      key "service-policy-name";
                      description
                        "Service policy details";
                      leaf service-policy-name {
                        type xr:Cisco-ios-xr-string {
                          length "0..64";
                        }
                        description
                          "Name of policy-map";
                      }
                    }  // list service-policy
                  }  // container input
                }  // container qos
              }  // container satellites
    
              container redundancy {
                description "Redundancy submode";
                leaf iccp-group {
                  type uint32 {
                    range "0..4294967295";
                  }
                  description
                    "Links the satellite fabric to the given ICCP
    group";
                }
    
                leaf minimum-preferred-links {
                  type Icpe-min-links;
                  description
                    "Mininum number of active links preferred";
                }
              }  // container redundancy
    
              leaf enable {
                type empty;
                mandatory true;
                description "Enable";
              }
            }  // container nv-satellite-fabric-network
    
            container ppp {
              description
                "Interface PPP configuration data";
            }  // container ppp
    
            container odu {
              description
                "ODU port controller configuration";
              container otn-send-ttitcmdapi {
                description
                  "Configure OTN Send TTI value for DAPI configs";
                leaf string-type {
                  type Otn-send-tti-type-dapi;
                  description
                    "TTI string type (FULL ASCII or  DAPI ASCII or
    SAPI ASCII or hex format or OS ASCII or OS
    HEX)";
                }
    
                leaf dapi-ascii-string {
                  when
                    "../string-type = 'send-tti-dapi-ascii/dapi-ascii'" {
                    description
                      "../StringType =
    SEND_TTI_DAPI_ASCII/DAPI_ASCII";
                  }
                  type string {
                    length "1..15";
                  }
                  description
                    "DAPI ASCII text (Max 15 characters)";
                }
              }  // container otn-send-ttitcmdapi
    
              container gcc-modes {
                description
                  "General Communication Channel Type";
                list gcc-mode {
                  key "type";
                  description
                    "Enable General Communication Channel Mode";
                  leaf type {
                    type Gcc-mode;
                    description "Type ";
                  }
    
                  leaf mode {
                    type Otngcc-mode;
                    mandatory true;
                    description
                      "Enable/Disable GCC";
                  }
                }  // list gcc-mode
              }  // container gcc-modes
    
              container otn-expected-ttisapi {
                description
                  "Configure OTN Expected TTI value for SAPI
    configs";
                leaf string-type {
                  type Otn-exp-tti-type-sapi;
                  description
                    "TTI string type (FULL ASCII or  DAPI ASCII or
    SAPI ASCII or hex format or OS ASCII or OS
    HEX)";
                }
    
                leaf sapi-ascii-string {
                  when
                    "../string-type = 'exp-tti-sapi-ascii/sapi-ascii'" {
                    description
                      "../StringType = EXP_TTI_SAPI_ASCII/SAPI_ASCII";
                  }
                  type string {
                    length "1..15";
                  }
                  description
                    "SAPI ASCII text (Max 15 characters)";
                }
              }  // container otn-expected-ttisapi
    
              container laser-squelch-timers {
                description
                  "Enable laser squelch and configure hold off
    time";
                list laser-squelch-timer {
                  key "mode-type";
                  description
                    "Enable laser squelch and configure hold off
    time";
                  leaf mode-type {
                    type Ca-mode;
                    description "Mode Type";
                  }
    
                  leaf timer {
                    type uint32 {
                      range "20..10000";
                    }
                    mandatory true;
                    description
                      "Configure hold off timer";
                  }
                }  // list laser-squelch-timer
              }  // container laser-squelch-timers
    
              container network-srlgs {
                description
                  "Configure Network srlgs";
                list network-srlg {
                  key "set-id";
                  description
                    "Configure network srlg sets";
                  leaf set-id {
                    type uint32 {
                      range "1..17";
                    }
                    description "Set index";
                  }
    
                  leaf srlg1 {
                    type uint32 {
                      range "0..4294967294";
                    }
                    description
                      "First value for Network SRLG";
                  }
    
                  leaf srlg2 {
                    type uint32 {
                      range "0..4294967294";
                    }
                    description
                      "Second value for Network SRLG";
                  }
    
                  leaf srlg3 {
                    type uint32 {
                      range "0..4294967294";
                    }
                    description
                      "Third value for Network SRLG";
                  }
    
                  leaf srlg4 {
                    type uint32 {
                      range "0..4294967294";
                    }
                    description
                      "Forth value for Network SRLG";
                  }
    
                  leaf srlg5 {
                    type uint32 {
                      range "0..4294967294";
                    }
                    description
                      "Fifth value for Network SRLG";
                  }
    
                  leaf srlg6 {
                    type uint32 {
                      range "0..4294967294";
                    }
                    description
                      "Sixth value for Network SRLG";
                  }
                }  // list network-srlg
              }  // container network-srlgs
    
              container otn-send-tti {
                description
                  "Configure OTN Send TTI value for Full ASCII/HEX";
                leaf string-type {
                  type Otn-send-tti-type-full;
                  description
                    "TTI string type (FULL ASCII or  DAPI ASCII or
    SAPI ASCII or hex format or OS ASCII or OS
    HEX)";
                }
    
                leaf full-ascii-string {
                  when
                    "../string-type = 'send-tti-full-ascii/full-ascii'" {
                    description
                      "../StringType =
    SEND_TTI_FULL_ASCII/FULL_ASCII";
                  }
                  type string {
                    length "1..64";
                  }
                  description
                    "Full ASCII text (Max 64 characters)";
                }
    
                leaf hex-string {
                  when
                    "../string-type = 'send-tti-hex/hex'" {
                    description
                      "../StringType = SEND_TTI_HEX/Hex";
                  }
                  type string {
                    length "1..128";
                  }
                  description
                    "Hex nibbles (Max 128 - The string length
    should be an even number)";
                }
              }  // container otn-send-tti
    
              container otn-expected-ttitcmdapi {
                description
                  "Configure OTN Expected TTI value for DAPI
    configs";
                leaf string-type {
                  type Otn-exp-tti-type-dapi;
                  description
                    "TTI string type (FULL ASCII or  DAPI ASCII or
    SAPI ASCII or hex format or OS ASCII or OS
    HEX)";
                }
    
                leaf dapi-ascii-string {
                  when
                    "../string-type = 'exp-tti-dapi-ascii/dapi-ascii'" {
                    description
                      "../StringType = EXP_TTI_DAPI_ASCII/DAPI_ASCII";
                  }
                  type string {
                    length "1..15";
                  }
                  description
                    "DAPI ASCII text (Max 15 characters)";
                }
              }  // container otn-expected-ttitcmdapi
    
              container otn-send-ttisapi {
                description
                  "Configure OTN Send TTI value for SAPI configs";
                leaf string-type {
                  type Otn-send-tti-type-sapi;
                  description
                    "TTI string type (FULL ASCII or  DAPI ASCII or
    SAPI ASCII or hex format or OS ASCII or OS
    HEX)";
                }
    
                leaf sapi-ascii-string {
                  when
                    "../string-type = 'send-tti-sapi-ascii/sapi-ascii'" {
                    description
                      "../StringType =
    SEND_TTI_SAPI_ASCII/SAPI_ASCII";
                  }
                  type string {
                    length "1..15";
                  }
                  description
                    "SAPI ASCII text (Max 15 characters)";
                }
              }  // container otn-send-ttisapi
    
              container prbs {
                presence
                  "Indicates a prbs node is configured.";
                description
                  "Enable Prbs And configure";
                leaf mode-value {
                  type Odu-prbs-mode;
                  mandatory true;
                  description "Mode value";
                }
    
                leaf patternvalue {
                  type Pattern;
                  mandatory true;
                  description "Pattern value";
                }
    
                leaf directionvalue {
                  type Odu-prbs-direction;
                  description "Direction value";
                }
              }  // container prbs
    
              container idle-frame-timers {
                description
                  "Enable Idle Frame and configure hold off time";
                list idle-frame-timer {
                  key "mode-type";
                  description
                    "Enable Idle Frame and configure hold off time";
                  leaf mode-type {
                    type Ca-mode;
                    description "Mode Type";
                  }
    
                  leaf timer {
                    type uint32 {
                      range "20..10000";
                    }
                    mandatory true;
                    description
                      "Configure hold off timer";
                  }
                }  // list idle-frame-timer
              }  // container idle-frame-timers
    
              container otn-expected-ttitcmos {
                description
                  "Configure OTN Expected TTI value for OS config";
                leaf string-type {
                  type Otn-exp-tti-type-os;
                  description
                    "TTI string type (FULL ASCII or  DAPI ASCII or
    SAPI ASCII or hex format or OS ASCII or OS
    HEX)";
                }
    
                leaf osascii-string {
                  when
                    "../string-type = 'exp-tti-os-ascii/os-ascii'" {
                    description
                      "../StringType = EXP_TTI_OS_ASCII/OS_ASCII";
                  }
                  type string {
                    length "1..32";
                  }
                  description
                    "OS ASCII text (Max 32 characters)";
                }
    
                leaf oshex-string {
                  when
                    "../string-type = 'exp-tti-os-hex/os-hex'" {
                    description
                      "../StringType = EXP_TTI_OS_HEX/OS_HEX";
                  }
                  type string {
                    length "1..64";
                  }
                  description
                    "OS HEX text (Max 64 characters)";
                }
              }  // container otn-expected-ttitcmos
    
              container cem-packetize {
                description
                  "CEM packetize the client payload carried inside
    ODUk";
                leaf cem-client {
                  type Otncem-client;
                  description
                    "ODU CEM Packetize client";
                }
    
                leaf mapping {
                  type Otn-mapping;
                  description "ODU Mapping";
                }
              }  // container cem-packetize
    
              container otn-expected-tti {
                description
                  "Configure OTN Expected TTI value for Full
    ASCII/HEX";
                leaf string-type {
                  type Otn-exp-tti-type-full;
                  description
                    "TTI string type (FULL ASCII or  DAPI ASCII or
    SAPI ASCII or hex format or OS ASCII or OS
    HEX)";
                }
    
                leaf full-ascii-string {
                  when
                    "../string-type = 'exp-tti-full-ascii/full-ascii'" {
                    description
                      "../StringType = EXP_TTI_FULL_ASCII/FULL_ASCII";
                  }
                  type string {
                    length "1..64";
                  }
                  description
                    "Full ASCII text (Max 64 characters)";
                }
    
                leaf hex-string {
                  when
                    "../string-type = 'exp-tti-hex/hex'" {
                    description
                      "../StringType = EXP_TTI_HEX/Hex";
                  }
                  type string {
                    length "1..128";
                  }
                  description
                    "Hex nibbles (Max 128 - The string length
    should be an even number)";
                }
              }  // container otn-expected-tti
    
              container controller-flexes {
                description
                  "Channelizing to lower order controller";
                list controller-flex {
                  key "controller-name tpn";
                  description
                    "Creation of lower order controllers";
                  leaf controller-name {
                    type Otn-child-flex-controller-name;
                    description
                      "Lower order flex controller";
                  }
    
                  leaf tpn {
                    type uint32 {
                      range "1..80";
                    }
                    description
                      "<1 - MAX> Tributary port number as allowed in
    G.709";
                  }
    
                  leaf timeslots {
                    type string {
                      length "1..230";
                    }
                    description
                      "Timeslots requested - string separated by (:)
    or (-) from 1 to 24. (:) indicates individual
    timeslot and (-) represent range";
                  }
    
                  leaf bitrate {
                    type uint32 {
                      range "1..104124241";
                    }
                    description
                      "Bitrate for Odu-flex in kbps";
                  }
    
                  leaf mapping {
                    type Otn-flex-mapping;
                    description
                      "Mapping for flexible containers";
                  }
                }  // list controller-flex
              }  // container controller-flexes
    
              container otn-send-ttitcmos {
                description
                  "Configure OTN Send TTI value for OS config";
                leaf string-type {
                  type Otn-send-tti-type-os;
                  description
                    "TTI string type (FULL ASCII or  DAPI ASCII or
    SAPI ASCII or hex format or OS ASCII or OS
    HEX)";
                }
    
                leaf osascii-string {
                  when
                    "../string-type = 'send-tti-os-ascii/os-ascii'" {
                    description
                      "../StringType = SEND_TTI_OS_ASCII/OS_ASCII";
                  }
                  type string {
                    length "1..32";
                  }
                  description
                    "OS ASCII text (Max 32 characters)";
                }
    
                leaf oshex-string {
                  when
                    "../string-type = 'send-tti-os-hex/os-hex'" {
                    description
                      "../StringType = SEND_TTI_OS_HEX/OS_HEX";
                  }
                  type string {
                    length "1..64";
                  }
                  description
                    "OS HEX text (Max 64 characters)";
                }
              }  // container otn-send-ttitcmos
    
              container termination {
                presence "enable termination";
                description
                  "Termination of ODU Controller";
                leaf state {
                  type Otn-termination;
                  description "ODU Termination";
                }
    
                leaf mapping {
                  type Otn-mapping;
                  description "ODU Mapping";
                }
              }  // container termination
    
              container controllers {
                description
                  "Channelizing to lower order controller";
                list controller {
                  key "controller-name tpn";
                  description
                    "Creation of lower order controllers";
                  leaf controller-name {
                    type Otn-child-controller-name;
                    description
                      "Lower order controller";
                  }
    
                  leaf tpn {
                    type uint32 {
                      range "1..80";
                    }
                    description
                      "<1 - MAX> Tributary port number as allowed in
    G.709";
                  }
    
                  leaf timeslots {
                    type string;
                    mandatory true;
                    description
                      "Timeslots requested - string separated by (:)
    or (-) from 1 to 24. (:) indicates individual
    timeslot and (-) represent range";
                  }
                }  // list controller
              }  // container controllers
    
              leaf secondary-admin-state {
                type Otn-sec-admin-state;
                default "normal";
                description
                  "Configure secondary admin state ";
              }
    
              leaf tsg {
                type Odu-time-slot-granularity;
                default "1.25g";
                description
                  "Configure Tributary Slot Granularity ";
              }
    
              leaf sd {
                type uint32 {
                  range "5..9";
                }
                description
                  "Signal degrade threshold";
              }
    
              leaf pmtim-state {
                type Otnpmtimca;
                default "disable";
                description
                  "Configure Consequent Action for PM TIM";
              }
    
              leaf performance-monitoring {
                type Otn-per-mon;
                default "disable";
                description
                  "Configure performance monitoring";
              }
    
              leaf loopback {
                type Otn-loopback;
                description "Type of Loopback";
              }
    
              leaf delay-measurement {
                type Odu-delay;
                default "disable";
                description
                  "State of Delay Measurement";
              }
    
              leaf gcc {
                type empty;
                description
                  "General Communication Channel configuration";
              }
    
              leaf sf {
                type uint32 {
                  range "5..9";
                }
                description
                  "Signal failure threshold";
              }
            }  // container odu
    
            leaf fast-shutdown {
              type empty;
              description
                "Enable Fast Shutdown for this interface";
            }
    
            leaf mac-addr {
              type yang:mac-address;
              description
                "Set the Mac address on an interface";
            }
    
            container macsec {
              description
                "MACSec service for an interface";
              container macsec-service {
                presence
                  "Indicates a macsec-service node is configured.";
                description
                  "macsec-service configuration on interface";
                leaf decrypt-port {
                  type xr:Interface-name;
                  mandatory true;
                  description
                    "macsec service decryption port";
                }
    
                leaf key-chain {
                  type string {
                    length "1..32";
                  }
                  mandatory true;
                  description "name of keychain";
                }
    
                leaf policy {
                  type string {
                    length "1..16";
                  }
                  description "name of policy";
                }
              }  // container macsec-service
    
              container eap {
                description
                  "Enabling MACSec eap Configuration on Interface";
                leaf eap-config {
                  type Eap-list;
                  description "Eap config";
                }
    
                leaf policy-name {
                  type xr:Cisco-ios-xr-string {
                    length "1..16";
                  }
                  description "Name of Policy";
                }
              }  // container eap
    
              container psk-key-chain {
                presence
                  "Indicates a psk-key-chain node is configured.";
                description
                  "MACSec MKA Configuration on Interface";
                leaf key-chain-name {
                  type xr:Cisco-ios-xr-string {
                    length "1..32";
                  }
                  mandatory true;
                  description
                    "Name of KeyChainName";
                }
    
                leaf policy-name {
                  type xr:Cisco-ios-xr-string {
                    length "1..16";
                  }
                  description "Name of Policy";
                }
    
                leaf fallback-key-chain {
                  type string {
                    length "1..32";
                  }
                  description
                    "name of fallback keychain";
                }
              }  // container psk-key-chain
            }  // container macsec
    
            container portmode {
              description
                "Configure through port-mode";
              leaf speed-sel {
                type Speed-sel;
                description "Select speed";
              }
    
              leaf fec-sel {
                type Fec-sel;
                description "Select Fec";
              }
    
              leaf diff-sel {
                type Diff-sel;
                description "Select Diff";
              }
    
              leaf mod-sel {
                type Mod-sel;
                description "Select modulation";
              }
            }  // container portmode
    
            container csi-ether {
              description
                "Interface CSI ETHER configuration data";
              leaf mtu {
                type uint32 {
                  range "64..9500";
                }
                description
                  "MTU Setting of Interface";
              }
            }  // container csi-ether
    
            container tunnel-ip {
              description
                "IP over GRE encapsulation";
              container ttl {
                description
                  "Configure the time-to-live for packets sent
    over this tunnel";
                leaf value {
                  type uint32 {
                    range "1..255";
                  }
                  description
                    "Enter the TTL value";
                }
    
                leaf disable {
                  type empty;
                  description
                    "Always set to false";
                }
              }  // container ttl
    
              container mode {
                description
                  "Tunnel encapsulation method";
                leaf value {
                  type uint32;
                  description
                    "GRE IPV4 - 1, GRE IPV6 - 2, MGRE IPV4 - 3,
    MGRE IPV6 -4. IPV4 - 5, IPV6 - 6";
                }
    
                leaf mode-direction {
                  type Tunnel-mode-direction;
                  description
                    "Tunnel Mode Direction";
                }
              }  // container mode
    
              container source {
                description
                  "Configure source of tunnel";
                leaf type {
                  type uint32;
                  description
                    "1 for Interface Name, 2 for IPv4 Address, 3
    for IPv6 Address";
                }
    
                leaf address {
                  type inet:ipv4-address-no-zone;
                  description
                    "IPV4 address of the tunnel source";
                }
    
                leaf interface-name {
                  type xr:Interface-name;
                  description
                    "Name of tunnel source interface";
                }
    
                leaf ipv6-address {
                  type string;
                  description
                    "IPV6 address of the tunnel source";
                }
              }  // container source
    
              container key {
                description
                  "Configure the key value for packets sent over
    this tunnel";
                leaf entropy {
                  type empty;
                  description
                    "Always set to true";
                }
    
                leaf value {
                  type uint32 {
                    range "0..4294967295";
                  }
                  description
                    "Enter the KEY value";
                }
              }  // container key
    
              container keepalive {
                description
                  "Enable keepalive packets on this tunnel";
                leaf keep-alive-period {
                  type uint32 {
                    range "1..32767";
                  }
                  description
                    "Keepalive period in seconds (default 10
    seconds)";
                }
    
                leaf keep-alive-retries {
                  type uint32 {
                    range "1..255";
                  }
                  description
                    "Number of retries (default 3)";
                }
              }  // container keepalive
    
              container bfd {
                description
                  "Configure BFD for tunnel";
                container keepalive-period {
                  description
                    "Configure keepalive period";
                  leaf value {
                    type uint32 {
                      range "1..32767";
                    }
                    description
                      "Keepalive period in seconds";
                  }
    
                  leaf disable {
                    type empty;
                    description
                      "Always set to false";
                  }
                }  // container keepalive-period
    
                container destination {
                  description
                    "Configure BFD destination for tunnel";
                  leaf type {
                    type uint32;
                    description
                      "1 for IPv4 Address, 2 for IPv6 Address";
                  }
    
                  leaf address {
                    type inet:ipv4-address-no-zone;
                    description
                      "IPV4 address of the BFD destination";
                  }
    
                  leaf ipv6-address {
                    type string;
                    description
                      "IPV6 address of the BFD destination";
                  }
                }  // container destination
    
                leaf minimum-interval {
                  type uint32 {
                    range "150..30000";
                  }
                  description
                    "Configure minimum interval for BFD";
                }
    
                leaf retry {
                  type uint32 {
                    range "1..255";
                  }
                  description
                    "Configure Number of retries for BFD Keepalive";
                }
    
                leaf multiplier {
                  type uint32 {
                    range "3..50";
                  }
                  description
                    "Configure BFD multiplier";
                }
              }  // container bfd
    
              container destination {
                description
                  "Configure destination of tunnel";
                leaf type {
                  type uint32;
                  description
                    "1 for IPv4 Address, 2 for IPv6 Address";
                }
    
                leaf address {
                  type inet:ipv4-address-no-zone;
                  description
                    "IPV4 address of the tunnel destination";
                }
    
                leaf ipv6-address {
                  type string;
                  description
                    "IPV6 address of the tunnel destination";
                }
    
                leaf address-mask {
                  type inet:ipv4-address-no-zone;
                  description
                    "IPv4 prefix length of the tunnel destination";
                }
    
                leaf prefix-list-name {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  description
                    "Prefix-list to validate destination's
    resolving prefix";
                }
              }  // container destination
    
              leaf allow-key {
                type empty;
                description
                  "Enable flag bit to allow packets with GRE key";
              }
    
              leaf tunnel-vrf {
                type xr:Cisco-ios-xr-string {
                  length "1..32";
                }
                description
                  "Tunnel vrf label name";
              }
    
              leaf tos {
                type uint32 {
                  range "0..255";
                }
                description
                  "Configure Type of Service bits for this tunnel";
              }
    
              leaf disable {
                type uint32;
                description
                  "Disable DF bit (i.e. allow fragmentation)";
              }
            }  // container tunnel-ip
    
            list cnbng-nal-ip-subscriber {
              key "ip-sub";
              description "None";
              leaf enable {
                type empty;
                description
                  "Enable None. Deletion of this object also
    causes deletion of all associated objects under
    CnbngNalIpSubscriber.";
              }
    
              leaf ip-sub {
                type xr:Cisco-ios-xr-string;
                description "Set string";
              }
    
              list cnbng-nal-ipv4-sub-enable {
                key "ipv4 ipv4l2-conn";
                description "None";
                leaf enable {
                  type empty;
                  description
                    "Enable None. Deletion of this object also
    causes deletion of all associated objects
    under CnbngNalIpv4SubEnable.";
                }
    
                leaf cnbng-nal-ipv4-sub-init-dhcp {
                  type empty;
                  description "Enable";
                }
    
                leaf ipv4 {
                  type xr:Cisco-ios-xr-string;
                  description "Set string";
                }
    
                leaf ipv4l2-conn {
                  type xr:Cisco-ios-xr-string;
                  description "Set string";
                }
              }  // list cnbng-nal-ipv4-sub-enable
    
              list cnbng-nal-ipv6-sub-enable {
                key "ipv6 ipv6l2-conn";
                description "None";
                leaf cnbng-nal-ipv6-sub-init-dhcp {
                  type empty;
                  description "Enable";
                }
    
                leaf enable {
                  type empty;
                  description
                    "Enable None. Deletion of this object also
    causes deletion of all associated objects
    under CnbngNalIpv6SubEnable.";
                }
    
                leaf ipv6 {
                  type xr:Cisco-ios-xr-string;
                  description "Set string";
                }
    
                leaf ipv6l2-conn {
                  type xr:Cisco-ios-xr-string;
                  description "Set string";
                }
              }  // list cnbng-nal-ipv6-sub-enable
            }  // list cnbng-nal-ip-subscriber
    
            container cnbng-nal-pppoe-subscriber {
              description "None";
              leaf pppoe {
                type uint32;
                description
                  "Set constant integer";
              }
    
              leaf bba-group {
                type string;
                description
                  "The bba-group to use";
              }
            }  // container cnbng-nal-pppoe-subscriber
    
            container tunnel-te-attributes {
              status deprecated;
              description
                "This model is deprecated and is replaced by
    Cisco-IOS-XR-um-mpls-te-cfg.yang which will
    provide the compatible functionalities.  MPLS
    tunnel attributes";
              container backup-bandwidth {
                description
                  "Tunnel backup bandwidth requirement";
                leaf dste-type {
                  type Mpls-te-bandwidth-dste;
                  description
                    "DSTE-standard flag";
                }
    
                leaf pool-type {
                  type Mpls-te-backup-bandwidth-pool;
                  description
                    "Backup bandwidth pool type, relevant only if
    DSTEType is PreStandardDSTE";
                }
    
                leaf class-type {
                  type Mpls-te-backup-bandwidth-class;
                  description
                    "Backup bandwidth class type, relevant only if
    DSTEType is StandardDSTE";
                }
    
                leaf limit-type {
                  type Mpls-te-bandwidth-limit;
                  description
                    "Backup bandwidth limit type";
                }
    
                leaf backup-bandwidth {
                  type uint32 {
                    range "1..4294967295";
                  }
                  description
                    "Backup bandwidth requested by this tunnel in
    kbps. Ignored if bandwidth limit type is
    unlimited.";
                }
              }  // container backup-bandwidth
    
              container bfd-over-lsp {
                description "BFD over TE LSP";
                leaf dampening-initial-wait {
                  type uint32 {
                    range "1..518400000";
                  }
                  description
                    "Initial delay in milliseconds (default 16000)";
                }
    
                leaf fast-detect {
                  type Mpls-tebfd-session;
                  description
                    "Enable BFD Fast Detect On the tunnel";
                }
    
                leaf enable {
                  type empty;
                  description
                    "Always set to true";
                }
    
                leaf multiplier {
                  type uint32 {
                    range "3..10";
                  }
                  description
                    "Specify the multiplier for BFD failure
    detection";
                }
    
                leaf bringup-timeout {
                  type uint32 {
                    range "10..3600";
                  }
                  description
                    "Wait for session to come up in seconds
    (default 60)";
                }
    
                leaf periodic-ping-disable {
                  type empty;
                  description
                    "Disable Periodic LSP Ping for BFD over LSP";
                }
    
                leaf dampening-secondary-wait {
                  type uint32 {
                    range "1..518400000";
                  }
                  description
                    "Secondary delay in milliseconds (default
    20000)";
                }
    
                leaf periodic-ping-interval {
                  type uint32 {
                    range "60..3600";
                  }
                  description
                    "Periodic LSP Ping Interval in seconds (default
    120)";
                }
    
                leaf dampening-maximum-wait {
                  type uint32 {
                    range "1..518400000";
                  }
                  description
                    "Maximum delay in milliseconds (default 600000)";
                }
    
                leaf minimum-interval {
                  type uint32 {
                    range "3..30000";
                  }
                  description
                    "Specify the minimum interval for BFD failure
    detection";
                }
    
                leaf encap-mode {
                  type uint32 {
                    range "0..1";
                  }
                  description
                    "Specify BFD Encap Mode on the tunnel";
                }
              }  // container bfd-over-lsp
    
              container binding-segment-id-mpls {
                description
                  "Allocate MPLS binding segment ID";
                leaf segment-id-type {
                  type Binding-segment-id;
                  description
                    "MPLS label value type";
                }
    
                leaf label-value {
                  when
                    "../segment-id-type = 'specified-label'" {
                    description
                      "../SegmentIDType = SpecifiedLabel";
                  }
                  type uint32 {
                    range "16..4015";
                  }
                  description "MPLS label";
                }
              }  // container binding-segment-id-mpls
    
              container tunnel-path-protection {
                description
                  "MPLS tunnel path protected configs";
                container protection-mode {
                  description
                    "Configure Protection Mode";
                  leaf non-revertive {
                    type empty;
                    description
                      "Enable non-revertive mode";
                  }
                }  // container protection-mode
    
                leaf enable {
                  type empty;
                  description
                    "Enable Path Protection";
                }
    
                leaf srlg-diverse {
                  type empty;
                  description
                    "Enforce SRLG diversity for protection LSP";
                }
              }  // container tunnel-path-protection
    
              container path-option-protects {
                description
                  "Tunnel path protection state";
                list path-option-protect {
                  key "protection";
                  description
                    "Tunnel path protection";
                  container path-options {
                    description
                      "Tunnel path options";
                    list path-option {
                      key "preference-level";
                      description
                        "A tunnel path option";
                      leaf preference-level {
                        type uint32 {
                          range "1..1000";
                        }
                        description
                          "Preference level for this path option";
                      }
    
                      leaf path-type {
                        type Mpls-te-path-option;
                        mandatory true;
                        description
                          "The type of the path option";
                      }
    
                      leaf path-id {
                        type uint32 {
                          range "1..65535";
                        }
                        description
                          "The ID of the IP explicit path associated
    with this option";
                      }
    
                      leaf path-name {
                        type string;
                        description
                          "The name of the IP explicit path associated
    with this option";
                      }
    
                      leaf path-property {
                        type uint32;
                        default "0";
                        description "Deprecated";
                      }
    
                      leaf interface {
                        type xr:Interface-name;
                        description "Deprecated";
                      }
    
                      leaf output-label {
                        type uint32;
                        default "0";
                        description "Deprecated";
                      }
    
                      leaf destination {
                        type inet:ipv4-address-no-zone;
                        default "0.0.0.0";
                        description "Deprecated";
                      }
    
                      leaf lockdown {
                        type Mpls-te-path-option-property;
                        default "none";
                        description
                          "Lockdown properties";
                      }
    
                      leaf verbatim {
                        type Mpls-te-path-option-property;
                        default "none";
                        description
                          "Verbatim properties";
                      }
    
                      leaf pce {
                        type Mpls-te-path-option-property;
                        default "none";
                        description
                          "PCE properties";
                      }
    
                      leaf pce-address {
                        type inet:ipv4-address-no-zone;
                        default "0.0.0.0";
                        description
                          "PCE address";
                      }
    
                      leaf igp-type {
                        type Mpls-te-igp-protocol;
                        default "none";
                        description "IGP type";
                      }
    
                      leaf igp-instance {
                        type string {
                          length "1..40";
                        }
                        description
                          "IGP instance name";
                      }
    
                      leaf igp-area {
                        type uint32;
                        default "0";
                        description
                          "IGP area ID in integer format";
                      }
    
                      leaf igp-area-ip-address-id {
                        type inet:ipv4-address-no-zone;
                        default "0.0.0.0";
                        description
                          "IGP area ID in IP address format";
                      }
    
                      leaf path-option-attribute-set-name {
                        type string;
                        description
                          "Path option attribute set name";
                      }
    
                      leaf protected-by-preference-level {
                        type uint32 {
                          range "1..1000";
                        }
                        default "1";
                        description
                          "Preference level of the protecting explicit
    path. Leave unset in order to not use an
    explicit protecting path";
                      }
    
                      leaf segment-routing {
                        type Mpls-te-path-option-property;
                        default "none";
                        description "Deprecated";
                      }
    
                      leaf sticky {
                        type Mpls-te-path-option-property;
                        default "none";
                        description
                          "Sticky properties";
                      }
                    }  // list path-option
                  }  // container path-options
    
                  leaf protection {
                    type Mpls-te-path-option-protection;
                    description
                      "Protection type for this path";
                  }
                }  // list path-option-protect
              }  // container path-option-protects
    
              container bidirectional {
                description
                  "Tunnel Interface Bidirectional configuration
    data";
                container association-corouted-type {
                  description
                    "Association Corouted Type";
                  container fault-oam {
                    description
                      "Tunnel Fault OAM";
                    leaf enable {
                      type empty;
                      description
                        "This object is only valid for bidirectional
    tunnel interfaces and it controls whether
    that interface has fault OAM enabled on it
    or not.";
                    }
                  }  // container fault-oam
    
                  leaf wrap-protection-enable {
                    type empty;
                    description
                      "This object is only valid for bidirectional
    tunnel interfaces and it controls whether
    that interface has LSP Wrap protectionenabled
    on it or not.";
                  }
    
                  leaf enable {
                    type empty;
                    description
                      "Controls whether association type is
    co-routed.";
                  }
    
                  leaf disable-protection-object {
                    type empty;
                    description
                      "Disable signaling of RSVP Protection Object";
                  }
                }  // container association-corouted-type
    
                container association-parameters {
                  presence
                    "Indicates a association-parameters node is configured.";
                  description
                    "Association ID, Source IP Address, and Global
    ID";
                  leaf association-id {
                    type uint32 {
                      range "0..65535";
                    }
                    mandatory true;
                    description "Association ID";
                  }
    
                  leaf association-source-address {
                    type inet:ipv4-address-no-zone;
                    mandatory true;
                    description
                      "Association Source IP Address";
                  }
    
                  leaf association-is-global-id-configured {
                    type boolean;
                    description
                      "Is Association Global ID Configured";
                  }
    
                  leaf association-global-id {
                    type uint32 {
                      range "0..4294967295";
                    }
                    description
                      "Association Global ID";
                  }
                }  // container association-parameters
    
                leaf enabled {
                  type empty;
                  description
                    "This object is only valid for tunnel
    interfaces and it controls whether that
    interface has bidirectional enabled on it or
    not.";
                }
              }  // container bidirectional
    
              container admin-mode {
                description
                  "Performs admin operations on the optical tunnel
    interface";
                leaf deactivate-tunnel {
                  type empty;
                  description
                    "Performs signalling operation to deactivate
    optical tunnel";
                }
              }  // container admin-mode
    
              container switching {
                description
                  "Specify tunnel LSPs switching capability
    descriptor";
                container transit {
                  presence
                    "Indicates a transit node is configured.";
                  description
                    "Specify transit switching descriptor
    parameters";
                  leaf capability {
                    type Mpls-te-switching-cap;
                    mandatory true;
                    description
                      "Switching capability";
                  }
    
                  leaf encoding {
                    type Mpls-te-switching-encode;
                    description "LSP encoding";
                  }
                }  // container transit
    
                container endpoint {
                  presence
                    "Indicates a endpoint node is configured.";
                  description
                    "Specify end point switching descriptor
    parameters";
                  leaf capability {
                    type Mpls-te-switching-cap;
                    mandatory true;
                    description
                      "Switching capability";
                  }
    
                  leaf encoding {
                    type Mpls-te-switching-encode;
                    description "LSP encoding";
                  }
                }  // container endpoint
              }  // container switching
    
              container pce {
                description "PCE config";
                container delegation {
                  description
                    "PCE Delegation config";
                  leaf enable {
                    type empty;
                    description
                      "Enable PCE Delegation";
                  }
    
                  leaf reopt {
                    type empty;
                    description
                      "Enable Reopt for PCE delegated Tunnel";
                  }
                }  // container delegation
    
                leaf enable {
                  type empty;
                  description
                    "Always set to true";
                }
              }  // container pce
    
              leaf delay-measurement {
                type empty;
                description
                  "Enable the delay-measurement feature on the
    tunnel";
              }
    
              leaf forward-class {
                type uint32 {
                  range "0..7";
                }
                description
                  "Forward class value";
              }
    
              container tunnel-path-selection {
                description
                  "Configure path selection properties";
                leaf tiebreaker {
                  type Mpls-te-path-selection-tiebreaker;
                  description
                    "CSPF tiebreaker to use in path calculation";
                }
    
                leaf path-selection-hop-limit {
                  type uint32 {
                    range "1..255";
                  }
                  description
                    "Path selection hop limit configuration for this
    specific tunnel";
                }
    
                leaf path-selection-delay-limit {
                  type uint32 {
                    range "1..4294967295";
                  }
                  description
                    "Path selection delay limit (usec) configuration
    for this specific tunnel";
                }
    
                container invalidation {
                  presence "enable invalidation";
                  description "Deprecated";
                  leaf path-invalidation-timeout {
                    type uint32 {
                      range "0..60000";
                    }
                    description
                      "Path Invalidation Timeout";
                  }
    
                  leaf path-invalidation-action {
                    type Path-invalidation-action;
                    description
                      "Path Invalidation Action";
                  }
                }  // container invalidation
    
                leaf path-selection-cost-limit {
                  type uint32 {
                    range "1..4294967295";
                  }
                  description
                    "Path selection cost limit configuration for this
    specific tunnel";
                }
              }  // container tunnel-path-selection
    
              container auto-bandwidth {
                description
                  "Tunnel Interface Auto-bandwidth configuration
    data";
                container underflow {
                  presence
                    "Indicates a underflow node is configured.";
                  description
                    "Configuring the tunnel underflow detection";
                  leaf underflow-threshold-percent {
                    type uint32 {
                      range "1..100";
                    }
                    units "percentage";
                    mandatory true;
                    description
                      "Bandwidth change percent to trigger an
    underflow";
                  }
    
                  leaf underflow-threshold-value {
                    type uint32 {
                      range "10..4294967295";
                    }
                    units "kbit/s";
                    mandatory true;
                    description
                      "Bandwidth change value to trigger an underflow
    (kbps)";
                  }
    
                  leaf underflow-threshold-limit {
                    type uint32 {
                      range "1..10";
                    }
                    mandatory true;
                    description
                      "Number of consecutive collections exceeding
    threshold";
                  }
                }  // container underflow
    
                container overflow {
                  presence
                    "Indicates a overflow node is configured.";
                  description
                    "Configuring the tunnel overflow detection";
                  leaf overflow-threshold-percent {
                    type uint32 {
                      range "1..100";
                    }
                    units "percentage";
                    mandatory true;
                    description
                      "Bandwidth change percent to trigger an
    overflow";
                  }
    
                  leaf overflow-threshold-value {
                    type uint32 {
                      range "10..4294967295";
                    }
                    units "kbit/s";
                    mandatory true;
                    description
                      "Bandwidth change value to trigger an overflow
    (kbps)";
                  }
    
                  leaf overflow-threshold-limit {
                    type uint32 {
                      range "1..10";
                    }
                    mandatory true;
                    description
                      "Number of consecutive collections exceeding
    threshold";
                  }
                }  // container overflow
    
                container bandwidth-limits {
                  presence
                    "Indicates a bandwidth-limits node is configured.";
                  description
                    "Set min/max bandwidth auto-bw can apply on a
    tunnel";
                  leaf bandwidth-min-limit {
                    type uint32 {
                      range "0..4294967295";
                    }
                    mandatory true;
                    description
                      "Set minimum bandwidth auto-bw can apply on a
    tunnel";
                  }
    
                  leaf bandwidth-max-limit {
                    type uint32 {
                      range "0..4294967295";
                    }
                    mandatory true;
                    description
                      "Set maximum bandwidth auto-bw can apply on a
    tunnel";
                  }
                }  // container bandwidth-limits
    
                container adjustment-threshold {
                  presence
                    "Indicates a adjustment-threshold node is configured.";
                  description
                    "Set the bandwidth change threshold to trigger
    adjustment";
                  leaf adjustment-threshold-percent {
                    type uint32 {
                      range "1..100";
                    }
                    units "percentage";
                    mandatory true;
                    description
                      "Bandwidth change percent to trigger adjustment";
                  }
    
                  leaf adjustment-threshold-value {
                    type uint32 {
                      range "10..4294967295";
                    }
                    units "kbit/s";
                    mandatory true;
                    description
                      "Bandwidth change value to trigger adjustment
    (kbps)";
                  }
                }  // container adjustment-threshold
    
                container auto-capacity {
                  description
                    "Tunnel auto-capacity configuration data";
                  leaf nominal-bandwidth {
                    type uint32 {
                      range "0..4294967295";
                    }
                    units "kbit/s";
                    description
                      "Bandwidth value used to compute the desired
    number of tunnels for auto-capacity";
                  }
    
                  leaf enable {
                    type boolean;
                    description
                      "Enable auto-capacityThe object must be set
    before any other auto capacity configuration
    is supplied for the tunnel,and must be the
    last auto-capacity configuration object to be
    removed.";
                  }
    
                  leaf clones-minimum {
                    type uint32 {
                      range "0..63";
                    }
                    default "0";
                    description
                      "Lower limit on the number of clones can be
    created for the tunnel";
                  }
    
                  leaf split-bandwidth {
                    type uint32 {
                      range "0..4294967295";
                    }
                    units "kbit/s";
                    description
                      "Upper bandwidth limit that causes the tunnel
    to be split";
                  }
    
                  leaf merge-bandwidth {
                    type uint32 {
                      range "0..4294967295";
                    }
                    units "kbit/s";
                    description
                      "Lower bandwidth limit that causes the tunnel
    to be merged";
                  }
    
                  leaf clones-maximum {
                    type uint32 {
                      range "0..63";
                    }
                    default "63";
                    description
                      "Upper limit on the number of clones can be
    created for the tunnel";
                  }
                }  // container auto-capacity
    
                leaf underflow-enable {
                  type boolean;
                  description
                    "Enable auto bandwidth underflow detection";
                }
    
                leaf resignal-last-bandwidth-time-out {
                  type uint32 {
                    range "1..3600000";
                  }
                  units "second";
                  description
                    "Set the tunnel auto-bw resignal last bandwidth
    time-out in seconds";
                }
    
                leaf enabled {
                  type boolean;
                  description
                    "This object is only valid for tunnel interfaces
    and it controls whether that interface has
    auto-bw enabled on it or not.The object must be
    set before any other auto-bw configuration is
    supplied for the interface, and must be the
    last auto-bw configuration object to be removed
    .";
                }
    
                leaf application-frequency {
                  type uint32 {
                    range "5..10080";
                  }
                  units "minute";
                  description
                    "Set the tunnel auto-bw application frequency in
    minutes";
                }
    
                leaf overflow-enable {
                  type boolean;
                  description
                    "Enable auto bandwidth overflow detection";
                }
    
                leaf collection-only {
                  type empty;
                  description
                    "Enable bandwidth collection only, no auto-bw
    adjustment";
                }
              }  // container auto-bandwidth
    
              container priority {
                presence
                  "Indicates a priority node is configured.";
                description
                  "Tunnel Setup and Hold Priorities";
                leaf setup-priority {
                  type uint32 {
                    range "0..7";
                  }
                  mandatory true;
                  description "Setup Priority";
                }
    
                leaf hold-priority {
                  type uint32 {
                    range "0..7";
                  }
                  mandatory true;
                  description "Hold Priority";
                }
              }  // container priority
    
              leaf destination {
                type inet:ipv4-address-no-zone;
                description
                  "Set the destination of the tunnel";
              }
    
              leaf record-route {
                type empty;
                description
                  "Record the route used by the tunnel";
              }
    
              container affinity-mask {
                presence
                  "Indicates a affinity-mask node is configured.";
                description
                  "Set the affinity flags and mask";
                leaf affinity {
                  type xr:Hex-integer;
                  mandatory true;
                  description "Affinity flags";
                }
    
                leaf mask {
                  type xr:Hex-integer;
                  mandatory true;
                  description "Affinity mask";
                }
              }  // container affinity-mask
    
              container forwarding-adjacency {
                description
                  "Forwarding adjacency announcement to IGP";
                leaf enable {
                  type empty;
                  description
                    "Enable forwarding adjacency";
                }
    
                leaf include-ipv6 {
                  type empty;
                  description
                    "Specify that the tunnel should be an IPv6
    forwarding adjacency also";
                }
    
                leaf hold-time {
                  type uint32 {
                    range "0..20000";
                  }
                  description
                    "Specify the holdtime for the tunnel as
    forwarding adjacency";
                }
              }  // container forwarding-adjacency
    
              container logging {
                description
                  "Log tunnel LSP messages";
                leaf lsp-switch-over-change-message {
                  type empty;
                  description
                    "Log tunnel messages for bandwidth change";
                }
    
                leaf all {
                  type empty;
                  description
                    "Log all events for a tunnel";
                }
    
                leaf record-route-messsage {
                  type empty;
                  description
                    "Log tunnel record-route messages";
                }
    
                leaf bfd-state-message {
                  type empty;
                  description
                    "Enable BFD session state change alarm";
                }
    
                leaf bandwidth-change-message {
                  type empty;
                  description
                    "Log tunnel messages for bandwidth change";
                }
    
                leaf reoptimize-attempts-message {
                  type empty;
                  description
                    "Log tunnel reoptimization attempts messages";
                }
    
                leaf reroute-messsage {
                  type empty;
                  description
                    "Log tunnel rereoute messages";
                }
    
                leaf state-message {
                  type empty;
                  description
                    "Log tunnel state messages";
                }
    
                leaf path-error-message {
                  type empty;
                  description
                    "Log tunnel messages for path error";
                }
    
                leaf insufficient-bw-message {
                  type empty;
                  description
                    "Log tunnel messages for insufficient bandwidth";
                }
    
                leaf reoptimized-message {
                  type empty;
                  description
                    "Log tunnel reoptimized messages";
                }
    
                leaf pcalc-failure-message {
                  type empty;
                  description
                    "Enable logging for path-calculation failures";
                }
              }  // container logging
    
              container bandwidth {
                presence
                  "Indicates a bandwidth node is configured.";
                description
                  "Tunnel bandwidth requirement";
                leaf dste-type {
                  type Mpls-te-bandwidth-dste;
                  mandatory true;
                  description
                    "DSTE-standard flag";
                }
    
                leaf class-or-pool-type {
                  type uint32 {
                    range "0..1";
                  }
                  mandatory true;
                  description
                    "Class type for the bandwidth allocation";
                }
    
                leaf bandwidth {
                  type uint32 {
                    range "0..4294967295";
                  }
                  units "kbit/s";
                  mandatory true;
                  description
                    "The value of the bandwidth reserved by this
    tunnel in kbps";
                }
              }  // container bandwidth
    
              container autoroute {
                description
                  "Parameters for IGP routing over tunnel";
                container autoroute-announce {
                  description
                    "Announce tunnel to IGP";
                  container exclude-traffic {
                    description
                      "Exclude traffic on autorouted tunnel";
                    leaf segment-routing {
                      type empty;
                      description
                        "Exclude tunnel in IGP for SR prefixes";
                    }
                  }  // container exclude-traffic
    
                  container metric {
                    description
                      "Specify MPLS tunnel metric";
                    leaf metric-type {
                      type Mpls-te-autoroute-metric;
                      description
                        "Autoroute tunnel metric type";
                    }
    
                    leaf absolute-metric {
                      when
                        "../metric-type = 'absolute'" {
                        description
                          "../MetricType = Absolute";
                      }
                      type uint32 {
                        range "1..2147483647";
                      }
                      description
                        "The absolute metric value";
                    }
    
                    leaf relative-metric {
                      when
                        "../metric-type = 'relative'" {
                        description
                          "../MetricType = Relative";
                      }
                      type int32 {
                        range "-10..10";
                      }
                      description
                        "The value of the adjustment";
                    }
    
                    leaf constant-metric {
                      when
                        "../metric-type = 'constant'" {
                        description
                          "../MetricType = Constant";
                      }
                      type uint32 {
                        range "1..2147483647";
                      }
                      description
                        "The constant metric value";
                    }
                  }  // container metric
    
                  leaf enable {
                    type empty;
                    description
                      "Enable autoroute announce";
                  }
    
                  leaf include-ipv6 {
                    type empty;
                    description
                      "Specify that the tunnel should be an IPv6
    autoroute announce also";
                  }
                }  // container autoroute-announce
    
                container destinations {
                  description
                    "Tunnel Autoroute Destination(s)";
                  list destination {
                    key "destination-address";
                    description
                      "Destination address to add in RIB";
                    leaf destination-address {
                      type inet:ipv4-address-no-zone;
                      description
                        "IP address of destination";
                    }
                  }  // list destination
                }  // container destinations
              }  // container autoroute
    
              container policy-classes {
                description
                  "Policy classes for PBTS";
                leaf-list policy-class {
                  type Mpls-te-policy-class-range;
                  max-elements 7;
                  description
                    "Array of Policy class";
                }
              }  // container policy-classes
    
              leaf path-selection-metric {
                type Mpls-te-path-selection-metric;
                description
                  "Path selection metric to use in path calculation";
              }
    
              container new-style-affinity-affinity-types {
                description
                  "Tunnel new style affinity attributes table";
                list new-style-affinity-affinity-type {
                  key "affinity-type";
                  description
                    "Tunnel new style affinity attribute";
                  leaf affinity-type {
                    type Mpls-te-tunnel-affinity;
                    description
                      "The type of the affinity entry";
                  }
                }  // list new-style-affinity-affinity-type
    
                list new-style-affinity-affinity-type-affinity1 {
                  key "affinity-type affinity1";
                  description
                    "Tunnel new style affinity attribute";
                  leaf affinity-type {
                    type Mpls-te-tunnel-affinity;
                    description
                      "The type of the affinity entry";
                  }
    
                  leaf affinity1 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the first affinity";
                  }
                }  // list new-style-affinity-affinity-type-affinity1
    
                list new-style-affinity-affinity-type-affinity1-affinity2 {
                  key "affinity-type affinity1 affinity2";
                  description
                    "Tunnel new style affinity attribute";
                  leaf affinity-type {
                    type Mpls-te-tunnel-affinity;
                    description
                      "The type of the affinity entry";
                  }
    
                  leaf affinity1 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the first affinity";
                  }
    
                  leaf affinity2 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the second affinity";
                  }
                }  // list new-style-affinity-affinity-type-affinity1-affinity2
    
                list new-style-affinity-affinity-type-affinity1-affinity2-affinity3 {
                  key "affinity-type affinity1 affinity2 affinity3";
                  description
                    "Tunnel new style affinity attribute";
                  leaf affinity-type {
                    type Mpls-te-tunnel-affinity;
                    description
                      "The type of the affinity entry";
                  }
    
                  leaf affinity1 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the first affinity";
                  }
    
                  leaf affinity2 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the second affinity";
                  }
    
                  leaf affinity3 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the third affinity";
                  }
                }  // list new-style-affinity-affinity-type-affinity1-affinity2-affinity3
    
                list new-style-affinity-affinity-type-affinity1-affinity2-affinity3-affinity4 {
                  key "affinity-type affinity1 affinity2 affinity3 affinity4";
                  description
                    "Tunnel new style affinity attribute";
                  leaf affinity-type {
                    type Mpls-te-tunnel-affinity;
                    description
                      "The type of the affinity entry";
                  }
    
                  leaf affinity1 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the first affinity";
                  }
    
                  leaf affinity2 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the second affinity";
                  }
    
                  leaf affinity3 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the third affinity";
                  }
    
                  leaf affinity4 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the fourth affinity";
                  }
                }  // list new-style-affinity-affinity-type-affinity1-affinity2-affinity3-affinity4
    
                list new-style-affinity-affinity-type-affinity1-affinity2-affinity3-affinity4-affinity5 {
                  key "affinity-type affinity1 affinity2 affinity3 affinity4 affinity5";
                  description
                    "Tunnel new style affinity attribute";
                  leaf affinity-type {
                    type Mpls-te-tunnel-affinity;
                    description
                      "The type of the affinity entry";
                  }
    
                  leaf affinity1 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the first affinity";
                  }
    
                  leaf affinity2 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the second affinity";
                  }
    
                  leaf affinity3 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the third affinity";
                  }
    
                  leaf affinity4 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the fourth affinity";
                  }
    
                  leaf affinity5 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the fifth affinity";
                  }
                }  // list new-style-affinity-affinity-type-affinity1-affinity2-affinity3-affinity4-affinity5
    
                list new-style-affinity-affinity-type-affinity1-affinity2-affinity3-affinity4-affinity5-affinity6 {
                  key "affinity-type affinity1 affinity2 affinity3 affinity4 affinity5 affinity6";
                  description
                    "Tunnel new style affinity attribute";
                  leaf affinity-type {
                    type Mpls-te-tunnel-affinity;
                    description
                      "The type of the affinity entry";
                  }
    
                  leaf affinity1 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the first affinity";
                  }
    
                  leaf affinity2 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the second affinity";
                  }
    
                  leaf affinity3 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the third affinity";
                  }
    
                  leaf affinity4 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the fourth affinity";
                  }
    
                  leaf affinity5 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the fifth affinity";
                  }
    
                  leaf affinity6 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the sixth affinity";
                  }
                }  // list new-style-affinity-affinity-type-affinity1-affinity2-affinity3-affinity4-affinity5-affinity6
    
                list new-style-affinity-affinity-type-affinity1-affinity2-affinity3-affinity4-affinity5-affinity6-affinity7 {
                  key "affinity-type affinity1 affinity2 affinity3 affinity4 affinity5 affinity6 affinity7";
                  description
                    "Tunnel new style affinity attribute";
                  leaf affinity-type {
                    type Mpls-te-tunnel-affinity;
                    description
                      "The type of the affinity entry";
                  }
    
                  leaf affinity1 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the first affinity";
                  }
    
                  leaf affinity2 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the second affinity";
                  }
    
                  leaf affinity3 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the third affinity";
                  }
    
                  leaf affinity4 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the fourth affinity";
                  }
    
                  leaf affinity5 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the fifth affinity";
                  }
    
                  leaf affinity6 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the sixth affinity";
                  }
    
                  leaf affinity7 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the seventh affinity";
                  }
                }  // list new-style-affinity-affinity-type-affinity1-affinity2-affinity3-affinity4-affinity5-affinity6-affinity7
    
                list new-style-affinity-affinity-type-affinity1-affinity2-affinity3-affinity4-affinity5-affinity6-affinity7-affinity8 {
                  key "affinity-type affinity1 affinity2 affinity3 affinity4 affinity5 affinity6 affinity7 affinity8";
                  description
                    "Tunnel new style affinity attribute";
                  leaf affinity-type {
                    type Mpls-te-tunnel-affinity;
                    description
                      "The type of the affinity entry";
                  }
    
                  leaf affinity1 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the first affinity";
                  }
    
                  leaf affinity2 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the second affinity";
                  }
    
                  leaf affinity3 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the third affinity";
                  }
    
                  leaf affinity4 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the fourth affinity";
                  }
    
                  leaf affinity5 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the fifth affinity";
                  }
    
                  leaf affinity6 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the sixth affinity";
                  }
    
                  leaf affinity7 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the seventh affinity";
                  }
    
                  leaf affinity8 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the eighth affinity";
                  }
                }  // list new-style-affinity-affinity-type-affinity1-affinity2-affinity3-affinity4-affinity5-affinity6-affinity7-affinity8
    
                list new-style-affinity-affinity-type-affinity1-affinity2-affinity3-affinity4-affinity5-affinity6-affinity7-affinity8-affinity9 {
                  key "affinity-type affinity1 affinity2 affinity3 affinity4 affinity5 affinity6 affinity7 affinity8 affinity9";
                  description
                    "Tunnel new style affinity attribute";
                  leaf affinity-type {
                    type Mpls-te-tunnel-affinity;
                    description
                      "The type of the affinity entry";
                  }
    
                  leaf affinity1 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the first affinity";
                  }
    
                  leaf affinity2 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the second affinity";
                  }
    
                  leaf affinity3 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the third affinity";
                  }
    
                  leaf affinity4 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the fourth affinity";
                  }
    
                  leaf affinity5 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the fifth affinity";
                  }
    
                  leaf affinity6 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the sixth affinity";
                  }
    
                  leaf affinity7 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the seventh affinity";
                  }
    
                  leaf affinity8 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the eighth affinity";
                  }
    
                  leaf affinity9 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the nineth affinity";
                  }
                }  // list new-style-affinity-affinity-type-affinity1-affinity2-affinity3-affinity4-affinity5-affinity6-affinity7-affinity8-affinity9
    
                list new-style-affinity-affinity-type-affinity1-affinity2-affinity3-affinity4-affinity5-affinity6-affinity7-affinity8-affinity9-affinity10 {
                  key "affinity-type affinity1 affinity2 affinity3 affinity4 affinity5 affinity6 affinity7 affinity8 affinity9 affinity10";
                  description
                    "Tunnel new style affinity attribute";
                  leaf affinity-type {
                    type Mpls-te-tunnel-affinity;
                    description
                      "The type of the affinity entry";
                  }
    
                  leaf affinity1 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the first affinity";
                  }
    
                  leaf affinity2 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the second affinity";
                  }
    
                  leaf affinity3 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the third affinity";
                  }
    
                  leaf affinity4 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the fourth affinity";
                  }
    
                  leaf affinity5 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the fifth affinity";
                  }
    
                  leaf affinity6 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the sixth affinity";
                  }
    
                  leaf affinity7 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the seventh affinity";
                  }
    
                  leaf affinity8 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the eighth affinity";
                  }
    
                  leaf affinity9 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the nineth affinity";
                  }
    
                  leaf affinity10 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the tenth affinity";
                  }
                }  // list new-style-affinity-affinity-type-affinity1-affinity2-affinity3-affinity4-affinity5-affinity6-affinity7-affinity8-affinity9-affinity10
              }  // container new-style-affinity-affinity-types
    
              leaf soft-preemption {
                type empty;
                description
                  "Enable the soft-preemption feature on the tunnel";
              }
    
              container fast-reroute {
                presence
                  "Indicates a fast-reroute node is configured.";
                description
                  "Specify MPLS tunnel can be fast-rerouted";
                leaf bandwidth-protection {
                  type uint32 {
                    range "0..1";
                  }
                  mandatory true;
                  description
                    "Bandwidth Protection";
                }
    
                leaf node-protection {
                  type uint32 {
                    range "0..1";
                  }
                  mandatory true;
                  description "Node Protection";
                }
              }  // container fast-reroute
    
              leaf load-share {
                type uint32 {
                  range "1..4294967295";
                }
                description
                  "Tunnel loadsharing metric";
              }
    
              leaf signalled-name {
                type string {
                  length "1..254";
                }
                description
                  "The name of the tunnel to be included in
    signalling messages";
              }
            }  // container tunnel-te-attributes
    
            container transport-profile-tunnel {
              status deprecated;
              description
                "This model is deprecated and is replaced by
    Cisco-IOS-XR-um-mpls-te-cfg.yang which will
    provide the compatible functionalities.  MPLS-TP
    tunnel attributes";
              container bfd {
                description
                  "Configure BFD parameters";
                container min-interval {
                  description
                    "Hello interval, either in milli-seconds or in
    micro-seconds";
                  leaf interval-ms {
                    type uint32 {
                      range "3..5000";
                    }
                    description
                      "Hello interval in milli-seconds";
                  }
    
                  leaf interval-us {
                    type uint32 {
                      range "3000..5000000";
                    }
                    description
                      "Hello interval in micro-seconds";
                  }
                }  // container min-interval
    
                container min-interval-standby {
                  description
                    "Hello interval for standby transport profile
    LSP, either in milli-seconds or in
    micro-seconds";
                  leaf interval-standby-ms {
                    type uint32 {
                      range "3..5000";
                    }
                    description
                      "Hello interval in milli-seconds";
                  }
    
                  leaf interval-standby-us {
                    type uint32 {
                      range "3000..5000000";
                    }
                    description
                      "Hello interval in micro-seconds";
                  }
                }  // container min-interval-standby
    
                leaf detection-multiplier {
                  type uint32 {
                    range "2..10";
                  }
                  description
                    "Detect multiplier";
                }
    
                leaf enable {
                  type empty;
                  description
                    "Configure BFD parameters";
                }
    
                leaf multiplier-standby {
                  type uint32 {
                    range "2..10";
                  }
                  description
                    "Detect multiplier for standby transport
    profile LSP";
                }
              }  // container bfd
    
              container working-lsp {
                description "Working LSP";
                container out-label {
                  presence
                    "Indicates a out-label node is configured.";
                  description
                    "Outgoing MPLS label of the working LSP";
                  leaf label {
                    type uint32 {
                      range "16..1048575";
                    }
                    description "MPLS label";
                  }
    
                  leaf link {
                    type uint32 {
                      range "1..65535";
                    }
                    mandatory true;
                    description
                      "Transport profile identifier of outgoing link";
                  }
                }  // container out-label
    
                leaf in-label {
                  type uint32 {
                    range "16..4015";
                  }
                  description
                    "Incoming MPLS label of the working LSP";
                }
    
                leaf lockout {
                  type empty;
                  description
                    "Enable lockout of working LSP";
                }
    
                leaf lsp-id {
                  type uint32 {
                    range "0..65535";
                  }
                  default "0";
                  description
                    "LSP Identifier of the working LSP";
                }
              }  // container working-lsp
    
              container destination {
                description
                  "Node identifier and optional global identifier
    and tunnel identifier at destination";
                leaf node-id {
                  type inet:ipv4-address-no-zone;
                  description
                    "Node identifier in IPv4 address format";
                }
    
                leaf global-id {
                  type uint32 {
                    range "1..65535";
                  }
                  description
                    "Numeric global identifier";
                }
    
                leaf tunnel-id {
                  type uint32 {
                    range "0..65535";
                  }
                  description
                    "Numeric tunnel identifier";
                }
              }  // container destination
    
              container fault {
                description "Fault management";
                container protection-trigger {
                  description
                    "OAM events that trigger protection switching";
                  leaf ldi {
                    type boolean;
                    description
                      "Enable protection switching due to LDI event";
                  }
    
                  leaf ais {
                    type boolean;
                    description
                      "Enable protection switching due to AIS event";
                  }
    
                  leaf lkr {
                    type boolean;
                    description
                      "Enable protection switching due to LKR event";
                  }
                }  // container protection-trigger
    
                leaf enable {
                  type empty;
                  description
                    "Enter transport profile tunnel fault
    configuration";
                }
              }  // container fault
    
              container protect-lsp {
                description "Protect LSP";
                container out-label {
                  presence
                    "Indicates a out-label node is configured.";
                  description
                    "Outgoing MPLS label of the protect LSP";
                  leaf label {
                    type uint32 {
                      range "16..1048575";
                    }
                    description "MPLS label";
                  }
    
                  leaf link {
                    type uint32 {
                      range "1..65535";
                    }
                    mandatory true;
                    description
                      "Transport profile identifier of outgoing link";
                  }
                }  // container out-label
    
                leaf in-label {
                  type uint32 {
                    range "16..4015";
                  }
                  description
                    "Incoming MPLS label of the protect LSP";
                }
    
                leaf lockout {
                  type empty;
                  description
                    "Enable lockout of protect LSP";
                }
    
                leaf lsp-id {
                  type uint32 {
                    range "0..65535";
                  }
                  default "1";
                  description
                    "LSP Identifier of the protect LSP";
                }
              }  // container protect-lsp
    
              leaf source {
                type inet:ipv4-address-no-zone;
                description
                  "Transport profile node identifier in IPv4
    address format";
              }
            }  // container transport-profile-tunnel
    
            container mte-tunnel-attributes {
              status deprecated;
              description
                "This model is deprecated and is replaced by
    Cisco-IOS-XR-um-mpls-te-cfg.yang which will
    provide the compatible functionalities.  MPLS
    P2MP tunnel attributes";
              container destination-leafs {
                description
                  "P2MP destination table";
                list destination-leaf {
                  key "address";
                  description
                    "P2MP destination leaf";
                  container s2l-logging {
                    description
                      "Log tunnel destination s2l messages";
                    leaf s2l-reroute-messsage {
                      type empty;
                      description
                        "Log tunnel destination s2l rereoute messages";
                    }
    
                    leaf s2l-insufficient-bw-messsage {
                      type empty;
                      description
                        "Log tunnel destination s2l insufficient BW
    messages";
                    }
    
                    leaf s2l-pcalc-failure-message {
                      type empty;
                      description
                        "Enable logging for destination s2l
    path-calculation failures";
                    }
    
                    leaf s2l-state-message {
                      type empty;
                      description
                        "Log tunnel destination s2l state messages";
                    }
                  }  // container s2l-logging
    
                  container path-options {
                    description
                      "P2MP destination path-options attributes
    table";
                    list path-option {
                      key "preference-level";
                      description
                        "P2MP destination path option";
                      leaf preference-level {
                        type uint32 {
                          range "1..1000";
                        }
                        description
                          "Preference level for this path option";
                      }
    
                      leaf path-type {
                        type Mpls-te-path-option;
                        description
                          "The type of the path option";
                      }
    
                      leaf path-id {
                        type uint32 {
                          range "1..65535";
                        }
                        description
                          "The ID of the IP explicit path associated
    with this option";
                      }
    
                      leaf path-name {
                        type string;
                        description
                          "The name of the IP explicit path associated
    with this option";
                      }
    
                      leaf lockdown {
                        type Mpls-te-path-option-property;
                        description
                          "Path option properties";
                      }
    
                      leaf verbatim {
                        type Mpls-te-path-option-property;
                        description
                          "Path option properties";
                      }
                    }  // list path-option
                  }  // container path-options
    
                  leaf destination-disable {
                    type empty;
                    description
                      "Disables P2MP destination";
                  }
    
                  leaf destination {
                    type empty;
                    description
                      "Always set to true";
                  }
    
                  leaf address {
                    type inet:ipv4-address-no-zone;
                    description
                      "Address of P2MP destination";
                  }
                }  // list destination-leaf
              }  // container destination-leafs
    
              container priority {
                presence
                  "Indicates a priority node is configured.";
                description
                  "P2MP tunnel setup and hold priorities";
                leaf setup-priority {
                  type uint32 {
                    range "0..7";
                  }
                  mandatory true;
                  description "Setup Priority";
                }
    
                leaf hold-priority {
                  type uint32 {
                    range "0..7";
                  }
                  mandatory true;
                  description "Hold Priority";
                }
              }  // container priority
    
              container new-style-affinity-affinity-types {
                description
                  "P2MP tunnel new style affinity attributes table";
                list new-style-affinity-affinity-type {
                  key "affinity-type";
                  description
                    "Tunnel new style affinity attribute";
                  leaf affinity-type {
                    type Mpls-te-tunnel-affinity;
                    description
                      "The type of the affinity entry";
                  }
                }  // list new-style-affinity-affinity-type
    
                list new-style-affinity-affinity-type-affinity1 {
                  key "affinity-type affinity1";
                  description
                    "Tunnel new style affinity attribute";
                  leaf affinity-type {
                    type Mpls-te-tunnel-affinity;
                    description
                      "The type of the affinity entry";
                  }
    
                  leaf affinity1 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the first affinity";
                  }
                }  // list new-style-affinity-affinity-type-affinity1
    
                list new-style-affinity-affinity-type-affinity1-affinity2 {
                  key "affinity-type affinity1 affinity2";
                  description
                    "Tunnel new style affinity attribute";
                  leaf affinity-type {
                    type Mpls-te-tunnel-affinity;
                    description
                      "The type of the affinity entry";
                  }
    
                  leaf affinity1 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the first affinity";
                  }
    
                  leaf affinity2 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the second affinity";
                  }
                }  // list new-style-affinity-affinity-type-affinity1-affinity2
    
                list new-style-affinity-affinity-type-affinity1-affinity2-affinity3 {
                  key "affinity-type affinity1 affinity2 affinity3";
                  description
                    "Tunnel new style affinity attribute";
                  leaf affinity-type {
                    type Mpls-te-tunnel-affinity;
                    description
                      "The type of the affinity entry";
                  }
    
                  leaf affinity1 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the first affinity";
                  }
    
                  leaf affinity2 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the second affinity";
                  }
    
                  leaf affinity3 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the third affinity";
                  }
                }  // list new-style-affinity-affinity-type-affinity1-affinity2-affinity3
    
                list new-style-affinity-affinity-type-affinity1-affinity2-affinity3-affinity4 {
                  key "affinity-type affinity1 affinity2 affinity3 affinity4";
                  description
                    "Tunnel new style affinity attribute";
                  leaf affinity-type {
                    type Mpls-te-tunnel-affinity;
                    description
                      "The type of the affinity entry";
                  }
    
                  leaf affinity1 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the first affinity";
                  }
    
                  leaf affinity2 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the second affinity";
                  }
    
                  leaf affinity3 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the third affinity";
                  }
    
                  leaf affinity4 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the fourth affinity";
                  }
                }  // list new-style-affinity-affinity-type-affinity1-affinity2-affinity3-affinity4
    
                list new-style-affinity-affinity-type-affinity1-affinity2-affinity3-affinity4-affinity5 {
                  key "affinity-type affinity1 affinity2 affinity3 affinity4 affinity5";
                  description
                    "Tunnel new style affinity attribute";
                  leaf affinity-type {
                    type Mpls-te-tunnel-affinity;
                    description
                      "The type of the affinity entry";
                  }
    
                  leaf affinity1 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the first affinity";
                  }
    
                  leaf affinity2 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the second affinity";
                  }
    
                  leaf affinity3 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the third affinity";
                  }
    
                  leaf affinity4 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the fourth affinity";
                  }
    
                  leaf affinity5 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the fifth affinity";
                  }
                }  // list new-style-affinity-affinity-type-affinity1-affinity2-affinity3-affinity4-affinity5
    
                list new-style-affinity-affinity-type-affinity1-affinity2-affinity3-affinity4-affinity5-affinity6 {
                  key "affinity-type affinity1 affinity2 affinity3 affinity4 affinity5 affinity6";
                  description
                    "Tunnel new style affinity attribute";
                  leaf affinity-type {
                    type Mpls-te-tunnel-affinity;
                    description
                      "The type of the affinity entry";
                  }
    
                  leaf affinity1 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the first affinity";
                  }
    
                  leaf affinity2 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the second affinity";
                  }
    
                  leaf affinity3 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the third affinity";
                  }
    
                  leaf affinity4 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the fourth affinity";
                  }
    
                  leaf affinity5 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the fifth affinity";
                  }
    
                  leaf affinity6 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the sixth affinity";
                  }
                }  // list new-style-affinity-affinity-type-affinity1-affinity2-affinity3-affinity4-affinity5-affinity6
    
                list new-style-affinity-affinity-type-affinity1-affinity2-affinity3-affinity4-affinity5-affinity6-affinity7 {
                  key "affinity-type affinity1 affinity2 affinity3 affinity4 affinity5 affinity6 affinity7";
                  description
                    "Tunnel new style affinity attribute";
                  leaf affinity-type {
                    type Mpls-te-tunnel-affinity;
                    description
                      "The type of the affinity entry";
                  }
    
                  leaf affinity1 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the first affinity";
                  }
    
                  leaf affinity2 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the second affinity";
                  }
    
                  leaf affinity3 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the third affinity";
                  }
    
                  leaf affinity4 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the fourth affinity";
                  }
    
                  leaf affinity5 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the fifth affinity";
                  }
    
                  leaf affinity6 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the sixth affinity";
                  }
    
                  leaf affinity7 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the seventh affinity";
                  }
                }  // list new-style-affinity-affinity-type-affinity1-affinity2-affinity3-affinity4-affinity5-affinity6-affinity7
    
                list new-style-affinity-affinity-type-affinity1-affinity2-affinity3-affinity4-affinity5-affinity6-affinity7-affinity8 {
                  key "affinity-type affinity1 affinity2 affinity3 affinity4 affinity5 affinity6 affinity7 affinity8";
                  description
                    "Tunnel new style affinity attribute";
                  leaf affinity-type {
                    type Mpls-te-tunnel-affinity;
                    description
                      "The type of the affinity entry";
                  }
    
                  leaf affinity1 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the first affinity";
                  }
    
                  leaf affinity2 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the second affinity";
                  }
    
                  leaf affinity3 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the third affinity";
                  }
    
                  leaf affinity4 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the fourth affinity";
                  }
    
                  leaf affinity5 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the fifth affinity";
                  }
    
                  leaf affinity6 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the sixth affinity";
                  }
    
                  leaf affinity7 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the seventh affinity";
                  }
    
                  leaf affinity8 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the eighth affinity";
                  }
                }  // list new-style-affinity-affinity-type-affinity1-affinity2-affinity3-affinity4-affinity5-affinity6-affinity7-affinity8
    
                list new-style-affinity-affinity-type-affinity1-affinity2-affinity3-affinity4-affinity5-affinity6-affinity7-affinity8-affinity9 {
                  key "affinity-type affinity1 affinity2 affinity3 affinity4 affinity5 affinity6 affinity7 affinity8 affinity9";
                  description
                    "Tunnel new style affinity attribute";
                  leaf affinity-type {
                    type Mpls-te-tunnel-affinity;
                    description
                      "The type of the affinity entry";
                  }
    
                  leaf affinity1 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the first affinity";
                  }
    
                  leaf affinity2 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the second affinity";
                  }
    
                  leaf affinity3 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the third affinity";
                  }
    
                  leaf affinity4 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the fourth affinity";
                  }
    
                  leaf affinity5 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the fifth affinity";
                  }
    
                  leaf affinity6 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the sixth affinity";
                  }
    
                  leaf affinity7 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the seventh affinity";
                  }
    
                  leaf affinity8 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the eighth affinity";
                  }
    
                  leaf affinity9 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the nineth affinity";
                  }
                }  // list new-style-affinity-affinity-type-affinity1-affinity2-affinity3-affinity4-affinity5-affinity6-affinity7-affinity8-affinity9
    
                list new-style-affinity-affinity-type-affinity1-affinity2-affinity3-affinity4-affinity5-affinity6-affinity7-affinity8-affinity9-affinity10 {
                  key "affinity-type affinity1 affinity2 affinity3 affinity4 affinity5 affinity6 affinity7 affinity8 affinity9 affinity10";
                  description
                    "Tunnel new style affinity attribute";
                  leaf affinity-type {
                    type Mpls-te-tunnel-affinity;
                    description
                      "The type of the affinity entry";
                  }
    
                  leaf affinity1 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the first affinity";
                  }
    
                  leaf affinity2 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the second affinity";
                  }
    
                  leaf affinity3 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the third affinity";
                  }
    
                  leaf affinity4 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the fourth affinity";
                  }
    
                  leaf affinity5 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the fifth affinity";
                  }
    
                  leaf affinity6 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the sixth affinity";
                  }
    
                  leaf affinity7 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the seventh affinity";
                  }
    
                  leaf affinity8 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the eighth affinity";
                  }
    
                  leaf affinity9 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the nineth affinity";
                  }
    
                  leaf affinity10 {
                    type xr:Cisco-ios-xr-string;
                    description
                      "The name of the tenth affinity";
                  }
                }  // list new-style-affinity-affinity-type-affinity1-affinity2-affinity3-affinity4-affinity5-affinity6-affinity7-affinity8-affinity9-affinity10
              }  // container new-style-affinity-affinity-types
    
              container bandwidth {
                description
                  "P2MP tunnel bandwidth requirement";
                leaf dste-type {
                  type Mpls-te-bandwidth-dste;
                  description
                    "DSTE-standard flag";
                }
    
                leaf class-or-pool-type {
                  type uint32 {
                    range "0..1";
                  }
                  description
                    "Class type for the bandwidth allocation";
                }
    
                leaf bandwidth {
                  type uint32 {
                    range "0..4294967295";
                  }
                  description
                    "The value of the bandwidth reserved by this
    tunnel in kbps";
                }
              }  // container bandwidth
    
              container affinity-mask {
                description
                  "P2MP tunnel affinity and mask";
                leaf affinity {
                  type xr:Hex-integer;
                  description "Affinity flags";
                }
    
                leaf mask {
                  type xr:Hex-integer;
                  description "Affinity mask";
                }
              }  // container affinity-mask
    
              leaf record-route {
                type empty;
                description
                  "Record route used by individual P2MP S2L(s)";
              }
    
              leaf signalled-name {
                type string {
                  length "1..254";
                }
                description
                  "The name of the P2MP tunnel to be included in
    signalling messages";
              }
    
              leaf path-selection-metric {
                type Mpls-te-path-selection-metric;
                description
                  "Path selection configuration for this specific
    tunnel";
              }
    
              leaf signalled-payload {
                type xr:Hex-integer;
                description
                  "P2MP tunnel ipv6 signalled payload";
              }
    
              leaf fast-reroute {
                type empty;
                description
                  "Specify P2MP tunnel can be fast-rerouted";
              }
    
              leaf impose-explicit-null {
                type empty;
                description
                  "Impose an explicit null bellow the TE label";
              }
    
              container logging {
                description
                  "Log tunnel LSP messages";
                leaf insufficient-bw-message {
                  type empty;
                  description
                    "Log tunnel messages for insufficient bandwidth";
                }
    
                leaf reoptimized-message {
                  type empty;
                  description
                    "Log tunnel reoptimized messages";
                }
    
                leaf bandwidth-change-message {
                  type empty;
                  description
                    "Log tunnel bandwidth change messages";
                }
    
                leaf all {
                  type empty;
                  description
                    "Log all events for a tunnel";
                }
    
                leaf pcalc-failure-message {
                  type empty;
                  description
                    "Enable logging for path-calculation failures";
                }
    
                leaf state-message {
                  type empty;
                  description
                    "Log tunnel state messages";
                }
    
                leaf reoptimize-attempts-message {
                  type empty;
                  description
                    "Log tunnel reoptimization attempts messages";
                }
    
                leaf sub-lsp-state-message {
                  type empty;
                  description
                    "Log all tunnel sub-LSP state messages";
                }
    
                leaf reroute-messsage {
                  type empty;
                  description
                    "Log tunnel rereoute messages";
                }
              }  // container logging
            }  // container mte-tunnel-attributes
    
            container ipv6-network {
              description
                "Interface IPv6 Network configuration data";
              container bgp-qos-policy-propagation {
                presence
                  "Indicates a bgp-qos-policy-propagation node is configured.";
                description
                  "Configure BGP QoS policy propagation";
                leaf source {
                  type Ipv6-qppb;
                  mandatory true;
                  description
                    "QPPB configuration on source";
                }
    
                leaf destination {
                  type Ipv6-qppb;
                  mandatory true;
                  description
                    "QPPB configuration on destination";
                }
              }  // container bgp-qos-policy-propagation
    
              container bgp-policy-accountings {
                description
                  "IPv6 BGP Policy Accounting";
                list bgp-policy-accounting {
                  key "direction";
                  description
                    "Accounting input or output";
                  leaf direction {
                    type xr:Cisco-ios-xr-string;
                    description
                      "Accouting on input or output";
                  }
    
                  leaf destination-accounting {
                    type boolean;
                    mandatory true;
                    description
                      "Accounting on Destination IP Address";
                  }
    
                  leaf source-accounting {
                    type boolean;
                    mandatory true;
                    description
                      "Accounting on Source IP Address";
                  }
                }  // list bgp-policy-accounting
              }  // container bgp-policy-accountings
    
              container verify {
                presence
                  "Indicates a verify node is configured.";
                description
                  "IPv6 Verify Unicast Souce Reachable";
                leaf reachable {
                  type Ipv6-reachable;
                  mandatory true;
                  description
                    "Source Reachable Interface";
                }
    
                leaf self-ping {
                  type Ipv6-self-ping;
                  mandatory true;
                  description "Allow Self Ping";
                }
    
                leaf default-ping {
                  type Ipv6-default-ping;
                  mandatory true;
                  description
                    "Allow Default Route";
                }
              }  // container verify
    
              container addresses {
                description
                  "Set the IPv6 address of an interface";
                container segment-routings {
                  description
                    "Segment Routing Table";
                  list segment-routing {
                    key "address";
                    description
                      "Segment Routing Submode ";
                    container ipv6-prefix-sid {
                      presence
                        "Indicates a ipv6-prefix-sid node is configured.";
                      description
                        "Prefix-Sid for Segment Routing";
                      leaf prefix-length {
                        type dt1:Ipv6arm-prefix-length;
                        mandatory true;
                        description
                          "Prefix Length";
                      }
    
                      leaf zone {
                        type string;
                        description
                          "IPv6 address zone";
                      }
    
                      leaf route-tag {
                        type uint32 {
                          range "1..4294967295";
                        }
                        description "RouteTag";
                      }
                    }  // container ipv6-prefix-sid
    
                    leaf enable {
                      type empty;
                      description
                        "Segment Routing Submode";
                    }
    
                    leaf address {
                      type inet:ip-address-no-zone;
                      description "IPv6 address";
                    }
                  }  // list segment-routing
                }  // container segment-routings
    
                container link-local-address {
                  presence
                    "Indicates a link-local-address node is configured.";
                  description
                    "Link local IPv6 address";
                  leaf address {
                    type inet:ip-address-no-zone;
                    mandatory true;
                    description "IPv6 address";
                  }
    
                  leaf zone {
                    type string;
                    mandatory true;
                    description
                      "IPv6 address zone";
                  }
    
                  leaf route-tag {
                    type uint32 {
                      range "1..4294967295";
                    }
                    description "RouteTag";
                  }
                }  // container link-local-address
    
                container eui64-addresses {
                  description
                    "EUI-64 IPv6 address Table";
                  list eui64-address {
                    key "address";
                    description
                      "EUI-64 IPv6 address";
                    leaf address {
                      type inet:ip-address-no-zone;
                      description "IPv6 address";
                    }
    
                    leaf prefix-length {
                      type dt1:Ipv6arm-prefix-length;
                      mandatory true;
                      description
                        "Prefix Length";
                    }
    
                    leaf zone {
                      type string;
                      mandatory true;
                      description
                        "IPv6 address zone";
                    }
    
                    leaf route-tag {
                      type uint32 {
                        range "1..4294967295";
                      }
                      description "RouteTag";
                    }
                  }  // list eui64-address
                }  // container eui64-addresses
    
                container regular-addresses {
                  description
                    "Regular IPv6 address Table";
                  list regular-address {
                    key "address";
                    description
                      "Regular IPv6 address";
                    leaf address {
                      type inet:ip-address-no-zone;
                      description "IPv6 address";
                    }
    
                    leaf prefix-length {
                      type dt1:Ipv6arm-prefix-length;
                      mandatory true;
                      description
                        "Prefix Length";
                    }
    
                    leaf zone {
                      type string;
                      mandatory true;
                      description
                        "IPv6 address zone";
                    }
    
                    leaf route-tag {
                      type uint32 {
                        range "1..4294967295";
                      }
                      description "RouteTag";
                    }
                  }  // list regular-address
                }  // container regular-addresses
    
                container auto-configuration {
                  description
                    "Auto IPv6 Interface Configuration";
                  leaf enable {
                    type empty;
                    description
                      "The flag to enable auto ipv6 interface
    configuration";
                  }
    
                  leaf auto-config-slaac {
                    type empty;
                    description
                      "Enable slaac on Mgmt interface";
                  }
                }  // container auto-configuration
    
                leaf ipv6-dhcp-client-config {
                  type empty;
                  description
                    "Enable DHCPv6 Client";
                }
              }  // container addresses
    
              container bgp-flow-tag-policy-table {
                description
                  "Interface ipv6 bgp policy propagation flowtag
    configuration";
                container bgp-flow-tag-policy {
                  description "Input";
                  leaf source {
                    type boolean;
                    description
                      "Flow Tag configuration on source";
                  }
    
                  leaf destination {
                    type boolean;
                    description
                      "Flow Tag configuration on destination";
                  }
                }  // container bgp-flow-tag-policy
              }  // container bgp-flow-tag-policy-table
    
              leaf mtu {
                type uint32 {
                  range "1280..65535";
                }
                description
                  "MTU Setting of Interface";
              }
    
              leaf unnumbered {
                type xr:Interface-name;
                description
                  "Enable IPv6 processing without an explicit
    address";
              }
    
              leaf ttl-propagate-disable {
                type empty;
                description
                  "Disabled TTL propagate on an interface";
              }
    
              leaf tcp-mss-adjust-enable {
                type empty;
                description
                  "Enable TCP MSS adjust on an interface";
              }
    
              leaf icmp-unreach-disable {
                type empty;
                description
                  "Disable ICMP unreachable for Nullx interface";
              }
    
              leaf unreachables {
                type empty;
                description
                  "Override Sending of ICMP Unreachable Messages";
              }
            }  // container ipv6-network
    
            container ethernet-control {
              description "EthernetControl";
              container transceiver {
                description "Transceiver";
                container permit {
                  description "Permit";
                  leaf type {
                    type Permit-pluggable;
                    description
                      "Permit pluggable type all";
                  }
    
                  leaf pid {
                    type Permit-pluggable-pid;
                    description
                      "Permit pluggable PID (Product ID) all";
                  }
                }  // container permit
              }  // container transceiver
    
              leaf transport-mode {
                type Ether-ctrl-transport-mode;
                description
                  "Set the transport mode on an interface";
              }
    
              leaf small-frame-padding {
                type empty;
                description
                  "Enable small frame padding on an interface";
              }
            }  // container ethernet-control
    
            container qos {
              description
                "Interface QOS configuration";
              container output {
                description
                  "Egress service policy";
                list service-policy {
                  key "service-policy-name";
                  description
                    "Service policy details";
                  leaf service-policy-name {
                    type string {
                      length "0..64";
                    }
                    description
                      "Name of policy-map";
                  }
    
                  leaf account-type {
                    type Qos-policy-account;
                    description
                      "Turn off L2 or L3 accounting.";
                  }
    
                  leaf l1-user-defined {
                    type int32 {
                      range "-63..63";
                    }
                    description
                      "User specified value";
                  }
    
                  leaf spi-name {
                    type string {
                      length "0..32";
                    }
                    description
                      "Name of the SPI";
                  }
    
                  leaf subscriber-parent-policy {
                    type boolean;
                    description
                      "TRUE if service-policy applied on svlan.";
                  }
    
                  leaf resource-id {
                    type uint32 {
                      range "0..3";
                    }
                    description
                      "Resource ID value";
                  }
    
                  leaf service-fragment-parent-policy {
                    type boolean;
                    description
                      "TRUE if service-policy applied is a
      service-fragment policy).";
                  }
                }  // list service-policy
    
                list service-policy-qos {
                  key "service-policy-name";
                  description
                    "Service policy details";
                  container subscriber-group-names {
                    description
                      "Subscriber Group Name Details";
                    list subscriber-group-name {
                      key "subscriber-group-string";
                      description
                        "Subscriber Group details";
                      leaf subscriber-group-string {
                        type string {
                          length "0..64";
                        }
                        description
                          "Name of policy-map";
                      }
    
                      leaf account-type {
                        type Qos-policy-account;
                        description
                          "Turn off L2 or L3 accounting.";
                      }
    
                      leaf l1-user-defined {
                        type int32 {
                          range "-63..63";
                        }
                        description
                          "User specified value";
                      }
    
                      leaf spi-name {
                        type string {
                          length "0..32";
                        }
                        description
                          "Name of the SPI";
                      }
    
                      leaf policy-merge {
                        type Qos-field-not-supported;
                        description
                          "Not supported (Leave unspecified).";
                      }
    
                      leaf subscriber-parent-policy {
                        type boolean;
                        description
                          "TRUE if service-policy applied on svlan.";
                      }
    
                      leaf resource-id {
                        type uint32 {
                          range "0..3";
                        }
                        description
                          "Resource ID value";
                      }
    
                      leaf service-fragment-parent-policy {
                        type boolean;
                        description
                          "TRUE if service-policy applied is a
    service-fragment policy).";
                      }
                    }  // list subscriber-group-name
                  }  // container subscriber-group-names
    
                  container subscriber-parent {
                    presence
                      "Enable feature subscriber-parent";
                    description
                      "Subscriber Parent Details";
                    leaf account-type {
                      type Qos-policy-account;
                      description
                        "Turn off L2 or L3 accounting.";
                    }
    
                    leaf l1-user-defined {
                      type int32 {
                        range "-63..63";
                      }
                      description
                        "User specified value";
                    }
    
                    leaf spi-name {
                      type string {
                        length "0..32";
                      }
                      description
                        "Name of the SPI";
                    }
    
                    leaf policy-merge {
                      type Qos-field-not-supported;
                      description
                        "Not supported (Leave unspecified).";
                    }
    
                    leaf subscriber-parent-policy {
                      type boolean;
                      description
                        "TRUE if service-policy applied on svlan.";
                    }
    
                    leaf resource-id {
                      type uint32 {
                        range "0..3";
                      }
                      description
                        "Resource ID value";
                    }
    
                    leaf service-fragment-parent-policy {
                      type boolean;
                      description
                        "TRUE if service-policy applied is a
    service-fragment policy).";
                    }
                  }  // container subscriber-parent
    
                  leaf service-policy-name {
                    type string {
                      length "0..64";
                    }
                    description
                      "Name of policy-map";
                  }
                }  // list service-policy-qos
              }  // container output
    
              container input {
                description
                  "Ingress service policy";
                list service-policy {
                  key "service-policy-name";
                  description
                    "Service policy details";
                  leaf service-policy-name {
                    type string {
                      length "0..64";
                    }
                    description
                      "Name of policy-map";
                  }
    
                  leaf account-type {
                    type Qos-policy-account;
                    description
                      "Turn off L2 or L3 accounting.";
                  }
    
                  leaf l1-user-defined {
                    type int32 {
                      range "-63..63";
                    }
                    description
                      "User specified value";
                  }
    
                  leaf spi-name {
                    type string {
                      length "0..32";
                    }
                    description
                      "Name of the SPI";
                  }
    
                  leaf subscriber-parent-policy {
                    type boolean;
                    description
                      "TRUE if service-policy applied on svlan.";
                  }
    
                  leaf resource-id {
                    type uint32 {
                      range "0..3";
                    }
                    description
                      "Resource ID value";
                  }
    
                  leaf service-fragment-parent-policy {
                    type boolean;
                    description
                      "TRUE if service-policy applied is a
      service-fragment policy).";
                  }
                }  // list service-policy
    
                list service-policy-qos {
                  key "service-policy-name";
                  description
                    "Service policy details";
                  container subscriber-group-names {
                    description
                      "Subscriber Group Name Details";
                    list subscriber-group-name {
                      key "subscriber-group-string";
                      description
                        "Subscriber Group details";
                      leaf subscriber-group-string {
                        type string {
                          length "0..64";
                        }
                        description
                          "Name of policy-map";
                      }
    
                      leaf account-type {
                        type Qos-policy-account;
                        description
                          "Turn off L2 or L3 accounting.";
                      }
    
                      leaf l1-user-defined {
                        type int32 {
                          range "-63..63";
                        }
                        description
                          "User specified value";
                      }
    
                      leaf spi-name {
                        type string {
                          length "0..32";
                        }
                        description
                          "Name of the SPI";
                      }
    
                      leaf policy-merge {
                        type Qos-field-not-supported;
                        description
                          "Not supported (Leave unspecified).";
                      }
    
                      leaf subscriber-parent-policy {
                        type boolean;
                        description
                          "TRUE if service-policy applied on svlan.";
                      }
    
                      leaf resource-id {
                        type uint32 {
                          range "0..3";
                        }
                        description
                          "Resource ID value";
                      }
    
                      leaf service-fragment-parent-policy {
                        type boolean;
                        description
                          "TRUE if service-policy applied is a
    service-fragment policy).";
                      }
                    }  // list subscriber-group-name
                  }  // container subscriber-group-names
    
                  container subscriber-parent {
                    presence
                      "Enable feature subscriber-parent";
                    description
                      "Subscriber Parent Details";
                    leaf account-type {
                      type Qos-policy-account;
                      description
                        "Turn off L2 or L3 accounting.";
                    }
    
                    leaf l1-user-defined {
                      type int32 {
                        range "-63..63";
                      }
                      description
                        "User specified value";
                    }
    
                    leaf spi-name {
                      type string {
                        length "0..32";
                      }
                      description
                        "Name of the SPI";
                    }
    
                    leaf policy-merge {
                      type Qos-field-not-supported;
                      description
                        "Not supported (Leave unspecified).";
                    }
    
                    leaf subscriber-parent-policy {
                      type boolean;
                      description
                        "TRUE if service-policy applied on svlan.";
                    }
    
                    leaf resource-id {
                      type uint32 {
                        range "0..3";
                      }
                      description
                        "Resource ID value";
                    }
    
                    leaf service-fragment-parent-policy {
                      type boolean;
                      description
                        "TRUE if service-policy applied is a
    service-fragment policy).";
                    }
                  }  // container subscriber-parent
    
                  leaf service-policy-name {
                    type string {
                      length "0..64";
                    }
                    description
                      "Name of policy-map";
                  }
                }  // list service-policy-qos
              }  // container input
            }  // container qos
    
            container wanphy {
              description
                "WANPHY port controller configuration";
              leaf report-path-rdi {
                type empty;
                description
                  "Configure Path Remote Defect Indicator
    reporting";
              }
    
              leaf report-los {
                type empty;
                description
                  "Configure Loss Of Signal reporting";
              }
    
              leaf report-path-lcd {
                type empty;
                description
                  "Configure Path Loss Of Code-Group Delineation
    reporting";
              }
    
              leaf report-path-fe-plm {
                type empty;
                description
                  "Configure Path Far End Payload Label Mismatch
    reporting";
              }
    
              leaf lan-mode {
                type Wanphy-lan-mode;
                description "Configure LAN Mode";
              }
    
              leaf report-path-plm {
                type empty;
                description
                  "Configure Path Payload Label Mismatch reporting";
              }
    
              leaf report-path-fe-ais {
                type empty;
                description
                  "Configure Path Far End Payload Label Mismatch
    reporting";
              }
    
              leaf report-path-ais {
                type empty;
                description
                  "Configure Path Alarm Indication Signal
    reporting";
              }
    
              leaf report-line-ais {
                type empty;
                description
                  "Configure Line Alarm Indication Signal
    reporting";
              }
    
              leaf report-lof {
                type empty;
                description
                  "Configure Loss Of Frame reporting";
              }
    
              leaf report-lop {
                type empty;
                description
                  "Configure Loss Of Pointer reporting";
              }
    
              leaf report-rdi {
                type empty;
                description
                  "Configure Remote Defect Indicator reporting";
              }
    
              leaf report-sd-ber {
                type empty;
                description
                  "Configure B2 BER in excess of SD threshold
    reporting";
              }
    
              leaf threshold-sd-ber {
                type uint32 {
                  range "3..9";
                }
                default "6";
                description
                  "Bit error rate is 10 to the minus n, where n is
    threshold value";
              }
    
              leaf report-sf-ber {
                type empty;
                description
                  "Configure B2 BER in excess of SF threshold
    reporting";
              }
    
              leaf threshold-sf-ber {
                type uint32 {
                  range "3..9";
                }
                default "3";
                description
                  "Bit error rate is 10 to the minus n, where n is
    threshold value";
              }
    
              leaf wan-mode {
                type Wanphy-wan-mode;
                description "Configure WAN Mode";
              }
            }  // container wanphy
    
            container statistics {
              description
                "Per-interface statistics configuration";
              leaf load-interval {
                type uint32 {
                  range "0..600";
                }
                default "300";
                description
                  "Specify interval for load calculation for an
    interface";
              }
            }  // container statistics
    
            container ipv6-dhcp-client-options {
              description
                "Interface IPv6 dhcp-address-client-options
    configuration";
              container options {
                description "DHCPv6 Options";
                leaf dns-option {
                  type string;
                  description
                    "Domain Name Server Option";
                }
    
                leaf user-class-id-option {
                  type string;
                  description
                    "User Class ID String";
                }
    
                leaf vendor-id-option {
                  type string;
                  description
                    "Vendor ID Option String";
                }
    
                leaf domain-list-option {
                  type string;
                  description
                    "Domain List Option";
                }
              }  // container options
    
              container duidses {
                description "DUID Types";
                leaf-list duids {
                  type Duid;
                  max-elements 1;
                  description "DUID Type";
                }
              }  // container duidses
    
              container timers {
                description
                  "DHCPv6 Client Timers";
                leaf req-time-out {
                  type uint32 {
                    range "1..4";
                  }
                  description
                    "Initial request timeout";
                }
    
                leaf release-time-out {
                  type uint32 {
                    range "1..3";
                  }
                  description
                    "Initial release timeout value";
                }
    
                leaf sol-max-rt {
                  type uint32 {
                    range "10..3600";
                  }
                  description
                    "Maximum solicit retransmission value";
                }
    
                leaf req-max-rt {
                  type uint32 {
                    range "10..30";
                  }
                  description
                    "Maximum request timeout value";
                }
    
                leaf sol-time-out {
                  type uint32 {
                    range "1..4";
                  }
                  description
                    "Initial solicit timeout";
                }
    
                leaf sol-max-delay {
                  type uint32 {
                    range "1..4";
                  }
                  description
                    "Max delay of first solicit";
                }
              }  // container timers
    
              leaf enable {
                type empty;
                description "Enabled";
              }
    
              leaf rapid-commit {
                type string;
                description "Rapid-Commit";
              }
    
              leaf prefix-length {
                type uint32 {
                  range "64..127";
                }
                description "Prefix Length";
              }
            }  // container ipv6-dhcp-client-options
    
            container ipv4-dhcp-client-config {
              presence
                "Indicates a ipv4-dhcp-client-config node is configured.";
              description
                "Interface IPv4 dhcp-addres-client-options
    configuration";
              container option61-config {
                presence
                  "Indicates a option61-config node is configured.";
                description "Option 61";
                leaf opt61 {
                  type Option61;
                  mandatory true;
                  description "Option 61";
                }
    
                leaf subtype {
                  type Opt61-sub;
                  mandatory true;
                  description
                    "Enter Option61 SubType";
                }
    
                leaf ascii-string {
                  type string {
                    length "1..255";
                  }
                  description
                    "Enter ascii string for opt61Subtype ascii";
                }
              }  // container option61-config
    
              container option60-config {
                presence
                  "Indicates a option60-config node is configured.";
                description "Option 60";
                leaf opt60 {
                  type Option60;
                  mandatory true;
                  description "Option 60";
                }
    
                leaf enable {
                  type empty;
                  mandatory true;
                  description
                    "Option 60 is enabled";
                }
    
                leaf ascii-string {
                  type string {
                    length "1..255";
                  }
                  mandatory true;
                  description
                    "Enter ascii string";
                }
              }  // container option60-config
    
              container option77-config {
                presence
                  "Indicates a option77-config node is configured.";
                description "Option 77";
                leaf opt77 {
                  type Option77;
                  mandatory true;
                  description "Option 77";
                }
    
                leaf enable {
                  type empty;
                  mandatory true;
                  description
                    "Option 77 is enabled";
                }
    
                leaf ascii-string {
                  type string {
                    length "1..255";
                  }
                  mandatory true;
                  description
                    "Enter ascii string";
                }
              }  // container option77-config
    
              leaf ipv4-dhcp-client {
                type empty;
                mandatory true;
                description
                  "ipv4 address dhcp-client-options is enabled";
              }
            }  // container ipv4-dhcp-client-config
    
            container ptp {
              presence
                "CLI submode compatibility.";
              description
                "Precision Time Protocol interface configuration";
              container source-ipv6-address {
                description
                  "Source IPv6 Address";
                leaf enable {
                  type boolean;
                  description
                    "Enable source IPv6 address";
                }
    
                leaf source-ipv6 {
                  type inet:ipv6-address-no-zone;
                  description
                    "Source IPv6 address to use";
                }
              }  // container source-ipv6-address
    
              container announce-interval {
                description "Announce interval";
                leaf time-type {
                  type dt1:Ptp-time;
                  default "interval";
                  description
                    "Interval or Frequency";
                }
    
                leaf time-period {
                  type dt1:Ptp-time-period;
                  default "2";
                  description "Time Period";
                }
              }  // container announce-interval
    
              container interop {
                description
                  "Table for interop configuration";
                container egress-conversion {
                  description
                    "Iteroperation configuration to be used on
    egress";
                  container clock-class-mappings {
                    description
                      "Table for specific mappings for given clock
    class values";
                    list clock-class-mapping {
                      key "clock-class-from";
                      description
                        "Mapping for a given clock class value";
                      leaf clock-class-from {
                        type uint32 {
                          range "0..255";
                        }
                        description
                          "Clock Class to map from";
                      }
    
                      leaf clock-class-to {
                        type uint32 {
                          range "0..255";
                        }
                        mandatory true;
                        description
                          "Clock class to map to";
                      }
                    }  // list clock-class-mapping
                  }  // container clock-class-mappings
    
                  leaf clock-accuracy {
                    type uint32 {
                      range "0..254";
                    }
                    description
                      "Clock Accuracy value to use for the peer
    clock";
                  }
    
                  leaf priority2 {
                    type uint32 {
                      range "0..255";
                    }
                    description
                      "Priority2 value to use for the peer clock";
                  }
    
                  leaf clock-class-default {
                    type uint32 {
                      range "0..255";
                    }
                    description
                      "Default clock class to use when a more
    specific mapping is not available";
                  }
    
                  leaf offset-scaled-log-variance {
                    type uint32 {
                      range "0..65535";
                    }
                    description
                      "OSLV value to use for the peer clock";
                  }
    
                  leaf priority1 {
                    type uint32 {
                      range "0..255";
                    }
                    description
                      "Priority1 value to use for the peer clock";
                  }
                }  // container egress-conversion
    
                container ingress-conversion {
                  description
                    "Iteroperation configuration to be used on
    ingress";
                  container clock-class-mappings {
                    description
                      "Table for specific mappings for given clock
    class values";
                    list clock-class-mapping {
                      key "clock-class-from";
                      description
                        "Mapping for a given clock class value";
                      leaf clock-class-from {
                        type uint32 {
                          range "0..255";
                        }
                        description
                          "Clock Class to map from";
                      }
    
                      leaf clock-class-to {
                        type uint32 {
                          range "0..255";
                        }
                        mandatory true;
                        description
                          "Clock class to map to";
                      }
                    }  // list clock-class-mapping
                  }  // container clock-class-mappings
    
                  leaf clock-accuracy {
                    type uint32 {
                      range "0..254";
                    }
                    description
                      "Clock Accuracy value to use for the peer
    clock";
                  }
    
                  leaf priority2 {
                    type uint32 {
                      range "0..255";
                    }
                    description
                      "Priority2 value to use for the peer clock";
                  }
    
                  leaf clock-class-default {
                    type uint32 {
                      range "0..255";
                    }
                    description
                      "Default clock class to use when a more
    specific mapping is not available";
                  }
    
                  leaf offset-scaled-log-variance {
                    type uint32 {
                      range "0..65535";
                    }
                    description
                      "OSLV value to use for the peer clock";
                  }
    
                  leaf priority1 {
                    type uint32 {
                      range "0..255";
                    }
                    description
                      "Priority1 value to use for the peer clock";
                  }
                }  // container ingress-conversion
    
                leaf profile {
                  type dt1:Ptp-clock-profile;
                  description
                    "Profile to interoperate with";
                }
    
                leaf domain {
                  type uint32 {
                    range "0..255";
                  }
                  description
                    "Domain number of the peer clock";
                }
              }  // container interop
    
              container source-ipv4-address {
                description
                  "Source IPv4 Address";
                leaf enable {
                  type boolean;
                  description
                    "Enable source IP address";
                }
    
                leaf source-ip {
                  type inet:ipv4-address-no-zone;
                  description
                    "Source IP address to use";
                }
              }  // container source-ipv4-address
    
              container slaves {
                description
                  "Table for slave configuration";
                list slave {
                  must
                    "ethernet or ipv4-or-ipv6" {
                    description
                      "Ethernet or IPv4-or-IPv6 must be present.";
                  }
                  key "transport";
                  description
                    "Slave configuration";
                  leaf transport {
                    type dt1:Ptp-encap;
                    description
                      "Slave Transport Type";
                  }
    
                  list ethernet {
                    when
                      "../transport = 'ethernet'" {
                      description
                        "../Transport = Ethernet";
                    }
                    key "slave-mac-address";
                    description "ethernet";
                    leaf slave-mac-address {
                      type yang:mac-address;
                      description
                        "Slave MAC Address";
                    }
    
                    leaf non-negotiated {
                      type boolean;
                      description
                        "Enable non-negotiated unicast on this
    interface";
                    }
                  }  // list ethernet
    
                  list ipv4-or-ipv6 {
                    when
                      "../transport = 'ipv4' or ../transport = 'ipv6'" {
                      description
                        "../Transport = IPv4 or ../Transport = IPv6";
                    }
                    key "slave-ip-address";
                    description "ipv4 or ipv6";
                    leaf slave-ip-address {
                      type inet:ip-address-no-zone;
                      description
                        "Slave IP Address";
                    }
    
                    leaf non-negotiated {
                      type boolean;
                      description
                        "Enable non-negotiated unicast on this
    interface";
                    }
                  }  // list ipv4-or-ipv6
                }  // list slave
              }  // container slaves
    
              container sync-interval {
                description "Sync interval";
                leaf time-type {
                  type dt1:Ptp-time;
                  default "interval";
                  description
                    "Interval or Frequency";
                }
    
                leaf time-period {
                  type dt1:Ptp-time-period;
                  default "1";
                  description "Time Period";
                }
              }  // container sync-interval
    
              container masters {
                description
                  "Table for master configuration";
                list master {
                  must
                    "ethernet or ipv4-or-ipv6" {
                    description
                      "Ethernet or IPv4-or-IPv6 must be present.";
                  }
                  key "transport";
                  description
                    "Master configuration";
                  leaf transport {
                    type dt1:Ptp-encap;
                    description
                      "Master Transport Type";
                  }
    
                  list ethernet {
                    when
                      "../transport = 'ethernet'" {
                      description
                        "../Transport = Ethernet";
                    }
                    key "master-mac-address";
                    description "ethernet";
                    leaf master-mac-address {
                      type yang:mac-address;
                      description
                        "Master MAC Address - only used if Transport
    is Ethernet";
                    }
    
                    container delay-asymmetry {
                      description
                        "The delay asymmetry for this master";
                      leaf magnitude {
                        type int32 {
                          range
                            "-500000000..500000000";
                        }
                        default "0";
                        description
                          "How much longer the master to slave path
    takes than the reverse";
                      }
    
                      leaf units {
                        type dt1:Ptp-delay-asymmetry-units;
                        default "nanoseconds";
                        description
                          "The units to use for the delay asymmetry";
                      }
                    }  // container delay-asymmetry
    
                    leaf master-clock-class {
                      type uint32 {
                        range "0..255";
                      }
                      description
                        "Master clock class";
                    }
    
                    leaf non-negotiated {
                      type boolean;
                      description
                        "Enable non-negotiated unicast on this
    interface";
                    }
    
                    leaf priority {
                      type uint32 {
                        range "0..255";
                      }
                      description
                        "Master priority";
                    }
    
                    leaf communication {
                      type dt1:Ptp-transport;
                      default "unicast";
                      description
                        "Communication Model";
                    }
                  }  // list ethernet
    
                  list ipv4-or-ipv6 {
                    when
                      "../transport = 'ipv4' or ../transport = 'ipv6'" {
                      description
                        "../Transport = IPv4 or ../Transport = IPv6";
                    }
                    key "master-ip-address";
                    description "ipv4 or ipv6";
                    leaf master-ip-address {
                      type inet:ip-address-no-zone;
                      description
                        "Master IP Address - used if Transport is not
    Ethernet";
                    }
    
                    container delay-asymmetry {
                      description
                        "The delay asymmetry for this master";
                      leaf magnitude {
                        type int32 {
                          range
                            "-500000000..500000000";
                        }
                        default "0";
                        description
                          "How much longer the master to slave path
    takes than the reverse";
                      }
    
                      leaf units {
                        type dt1:Ptp-delay-asymmetry-units;
                        default "nanoseconds";
                        description
                          "The units to use for the delay asymmetry";
                      }
                    }  // container delay-asymmetry
    
                    leaf master-clock-class {
                      type uint32 {
                        range "0..255";
                      }
                      description
                        "Master clock class";
                    }
    
                    leaf non-negotiated {
                      type boolean;
                      description
                        "Enable non-negotiated unicast on this
    interface";
                    }
    
                    leaf priority {
                      type uint32 {
                        range "0..255";
                      }
                      description
                        "Master priority";
                    }
    
                    leaf communication {
                      type dt1:Ptp-transport;
                      default "unicast";
                      description
                        "Communication Model";
                    }
                  }  // list ipv4-or-ipv6
                }  // list master
              }  // container masters
    
              container delay-asymmetry {
                description
                  "Delay asymmetry to apply to all masters on the
    interface";
                leaf magnitude {
                  type int32 {
                    range
                      "-500000000..500000000";
                  }
                  default "0";
                  description
                    "How much longer the master to slave path takes
    than the reverse";
                }
    
                leaf units {
                  type dt1:Ptp-delay-asymmetry-units;
                  default "nanoseconds";
                  description
                    "The units to use for the delay asymmetry";
                }
              }  // container delay-asymmetry
    
              container communication {
                description
                  "Communication model";
                leaf model {
                  type dt1:Ptp-transport;
                  default "unicast";
                  description
                    "Communication Model";
                }
    
                leaf target-address-set {
                  type boolean;
                  default "false";
                  description
                    "Target address set";
                }
    
                leaf target-address {
                  type string;
                  description "Target address";
                }
              }  // container communication
    
              container delay-request-minimum-interval {
                description
                  "Minimum delay request interval";
                leaf time-type {
                  type dt1:Ptp-time;
                  default "interval";
                  description
                    "Interval or Frequency";
                }
    
                leaf time-period {
                  type dt1:Ptp-time-period;
                  default "1";
                  description "Time Period";
                }
              }  // container delay-request-minimum-interval
    
              leaf sync-grant-duration {
                type uint32 {
                  range "60..1000";
                }
                units "second";
                default "300";
                description
                  "Sync unicast grant duration, in seconds";
              }
    
              leaf general-cos {
                type uint32 {
                  range "0..7";
                }
                default "6";
                description "General COS";
              }
    
              leaf enable {
                type empty;
                description
                  "Enable the precision time protocol";
              }
    
              leaf sync-timeout {
                type uint32 {
                  range "100..100000";
                }
                units "millisecond";
                default "5000";
                description
                  "Sync timeout, in milliseconds";
              }
    
              leaf transport {
                type dt1:Ptp-encap;
                default "ipv4";
                description "Transport";
              }
    
              leaf profile {
                type string;
                description
                  "Precision Time Protocol configuration profile";
              }
    
              leaf announce-timeout {
                type uint32 {
                  range "2..10";
                }
                default "3";
                description "Announce Timeout";
              }
    
              leaf cos {
                type uint32 {
                  range "0..7";
                }
                default "6";
                description "COS";
              }
    
              leaf ipv4ttl {
                type uint32 {
                  range "1..255";
                }
                default "255";
                description "IPv4 TTL";
              }
    
              leaf port-state {
                type dt1:Ptp-port-state;
                default "any";
                description
                  "Port state restriction";
              }
    
              leaf delay-response-timeout {
                type uint32 {
                  range "100..100000";
                }
                units "millisecond";
                default "5000";
                description
                  "Delay-Response timeout, in milliseconds";
              }
    
              leaf local-priority {
                type uint32 {
                  range "1..255";
                }
                default "128";
                description "Local priority";
              }
    
              leaf delay-response-grant-duration {
                type uint32 {
                  range "60..1000";
                }
                units "second";
                default "300";
                description
                  "Delay-Response unicast grant duration, in
    seconds";
              }
    
              leaf event-cos {
                type uint32 {
                  range "0..7";
                }
                default "6";
                description "Event COS";
              }
    
              leaf dscp {
                type uint32 {
                  range "0..63";
                }
                default "46";
                description "DSCP";
              }
    
              leaf ipv6-hop-limit {
                type uint32 {
                  range "1..255";
                }
                default "255";
                description "IPv6 Hop Limit";
              }
    
              leaf general-dscp {
                type uint32 {
                  range "0..63";
                }
                default "46";
                description "General DSCP";
              }
    
              leaf clock-operation {
                type dt1:Ptp-clock-operation;
                default "two-step";
                description "Clock Operation";
              }
    
              leaf announce-grant-duration {
                type uint32 {
                  range "60..1000";
                }
                units "second";
                default "300";
                description
                  "Announce unicast grant duration, in seconds";
              }
    
              leaf unicast-grant-invalid-request {
                type dt1:Ptp-invalid-unicast-grant-request-response;
                default "reduce";
                description
                  "Invalid unicast grant request response";
              }
    
              leaf event-dscp {
                type uint32 {
                  range "0..63";
                }
                default "46";
                description "Event DSCP";
              }
            }  // container ptp
    
            container ipv4-network {
              description
                "Interface IPv4 Network configuration data";
              container bgp-pa {
                description
                  "Interface ipv4 bgp configuration";
                container input {
                  description "Input";
                  leaf source-accounting {
                    type boolean;
                    description
                      "BGP PA configuration on source";
                  }
    
                  leaf destination-accounting {
                    type boolean;
                    description
                      "BGP PA configuration on destination";
                  }
                }  // container input
    
                container output {
                  description "Output";
                  leaf source-accounting {
                    type boolean;
                    description
                      "BGP PA configuration on source";
                  }
    
                  leaf destination-accounting {
                    type boolean;
                    description
                      "BGP PA configuration on destination";
                  }
                }  // container output
              }  // container bgp-pa
    
              container verify {
                description
                  "Enable Verify handling for this interface";
                leaf reachable {
                  type Ipv4-reachable;
                  description
                    "Source is reachable via any interface or
    interface on which packet was received";
                }
    
                leaf self-ping {
                  type Ipv4-self-ping;
                  description
                    "Allow router to ping itself (opens
    vulnerability in verification)";
                }
    
                leaf default-ping {
                  type Ipv4-default-ping;
                  description
                    "Allow default route to match when checking
    source address";
                }
              }  // container verify
    
              container bgp {
                description
                  "Interface ipv4 bgp configuration";
                container qppb {
                  description
                    "Interface ipv4 bgp policy propagation
    configuration";
                  container input {
                    description "Input";
                    leaf source {
                      type Ipv4-interface-qppb;
                      description
                        "QPPB configuration on source";
                    }
    
                    leaf destination {
                      type Ipv4-interface-qppb;
                      description
                        "QPPB configuration on destination";
                    }
                  }  // container input
                }  // container qppb
    
                container flow-tag {
                  description
                    "Interface ipv4 bgp policy propagation flow tag
    configuration";
                  container flow-tag-input {
                    description "Input";
                    leaf source {
                      type boolean;
                      description
                        "FlowTag configuration on source";
                    }
    
                    leaf destination {
                      type boolean;
                      description
                        "FlowTag configuration on destination";
                    }
                  }  // container flow-tag-input
                }  // container flow-tag
              }  // container bgp
    
              container addresses {
                description
                  "Set the IP address of an interface";
                container secondaries {
                  description
                    "Specify a secondary address";
                  list secondary {
                    key "address";
                    description
                      "IP address and Mask";
                    leaf address {
                      type inet:ipv4-address-no-zone;
                      description
                        "Secondary IP address";
                    }
    
                    leaf netmask {
                      type inet:ipv4-address-no-zone;
                      mandatory true;
                      description "Netmask";
                    }
    
                    leaf route-tag {
                      type uint32 {
                        range "1..4294967295";
                      }
                      description "RouteTag";
                    }
                  }  // list secondary
                }  // container secondaries
    
                container primary {
                  presence
                    "Indicates a primary node is configured.";
                  description
                    "IP address and Mask";
                  leaf address {
                    type inet:ipv4-address-no-zone;
                    mandatory true;
                    description "IP address";
                  }
    
                  leaf netmask {
                    type inet:ipv4-address-no-zone;
                    mandatory true;
                    description "Netmask";
                  }
    
                  leaf route-tag {
                    type uint32 {
                      range "1..4294967295";
                    }
                    description "RouteTag";
                  }
                }  // container primary
    
                leaf unnumbered {
                  type xr:Interface-name;
                  description
                    "Enable IP processing without an explicit
    address";
                }
    
                leaf dhcp {
                  type empty;
                  description
                    "IPv4 address and Mask negotiated via DHCP";
                }
              }  // container addresses
    
              container helper-addresses {
                description
                  "The set of IP destination addresses for UDP
    broadcasts";
                list helper-address {
                  key "address vrf-name";
                  description
                    "An IP destination addresses for UDP broadcasts";
                  leaf address {
                    type inet:ipv4-address-no-zone;
                    description
                      "IP destination address";
                  }
    
                  leaf vrf-name {
                    type xr:Cisco-ios-xr-string {
                      length "1..32";
                    }
                    description "VRF name";
                  }
                }  // list helper-address
              }  // container helper-addresses
    
              leaf forwarding-enable {
                type empty;
                description
                  "IPv4 forwarding to get enabled on an interface";
              }
    
              leaf icmp-unreach-disable {
                type empty;
                description
                  "Disable ICMP unreachable for Nullx interface";
              }
    
              leaf icmp-mask-reply {
                type empty;
                description
                  "The flag for enabling sending of ICMP mask
    reply messages";
              }
    
              leaf tcp-mss-adjust-enable {
                type empty;
                description
                  "Enable TCP MSS Adjust on an interface";
              }
    
              leaf ttl-propagate-disable {
                type empty;
                description
                  "Disable TTL propagate on an interface";
              }
    
              leaf point-to-point {
                type empty;
                description
                  "Enable point-to-point handling for this
    interface.";
              }
    
              leaf mtu {
                type uint32 {
                  range "68..65535";
                }
                description
                  "The IP Maximum Transmission Unit";
              }
            }  // container ipv4-network
    
            container ipv4-network-forwarding {
              description
                "Interface IPv4 Network configuration data also
    used for forwarding";
              leaf directed-broadcast {
                type empty;
                description
                  "Enable forwarding of directed broadcast";
              }
    
              leaf unreachables {
                type empty;
                description
                  "Disable sending ICMP unreachables";
              }
    
              leaf redirects {
                type empty;
                description
                  "Enable sending ICMP Redirect messages";
              }
            }  // container ipv4-network-forwarding
    
            container nve {
              description "NVE operational data";
              container anycast {
                description
                  "Enable anycast mode for this NVE interface";
                leaf source-interface {
                  type string;
                  description
                    "Name of the Anycast mode source interface";
                }
    
                leaf sync-group {
                  type inet:ipv4-address-no-zone;
                  description
                    "MCast group for syncing between Anycast
    gateways";
                }
              }  // container anycast
    
              container redundancy {
                description
                  "Redundancy configuration for this NVE";
                container backbone-vx-lan {
                  description "VXLAN backbone";
                  leaf enable {
                    type empty;
                    description
                      "Enable Backbone VxLAN";
                  }
    
                  leaf backbone-vx-laniccp {
                    type uint32;
                    description
                      "VxLAN backbone ICCP group";
                  }
                }  // container backbone-vx-lan
    
                container backbone-mpls {
                  description "MPLS backbone";
                  leaf backbone-mplsiccp {
                    type uint32;
                    description
                      "MPLS backbone ICCP group";
                  }
    
                  leaf enable {
                    type empty;
                    description
                      "Enable Backbone MPLS";
                  }
                }  // container backbone-mpls
    
                leaf enable {
                  type empty;
                  description
                    "Enable Redundancy";
                }
              }  // container redundancy
    
              container member-vnis {
                description
                  "VNI configuration Table for this NVE";
                list member-vni {
                  key "vni-start vni-end";
                  description
                    "VNI member attributes";
                  container multicast {
                    presence "enable multicast";
                    description
                      "Mulitcast core group range associated with
    the VxLAN segment(s)";
                    leaf multicast-group-min {
                      type inet:ipv4-address-no-zone;
                      description
                        "IPV4 group address of the tunnel source";
                    }
    
                    leaf multicast-group-max {
                      type inet:ipv4-address-no-zone;
                      description
                        "IPV4 group address MAX";
                    }
                  }  // container multicast
    
                  leaf host-reachability {
                    type Host-reach-protocol;
                    description
                      "Control protocol for VxLAN tunnel endpoint
    reachability";
                  }
    
                  leaf vrf {
                    type string;
                    description
                      "VRF associated with the VxLAN segment";
                  }
    
                  leaf unknown-unicast-flooding {
                    type Unknown-unicast-flooding-enum;
                    description
                      "Suppression of unknown unicast flooding";
                  }
    
                  leaf load-balance-per-evi {
                    type Load-balance-enum;
                    description
                      "Per-evi load balance mode";
                  }
    
                  leaf enable {
                    type empty;
                    description "Enable VNI";
                  }
    
                  leaf vni-start {
                    type Vni-range;
                    description
                      "Single VNI or Range Start";
                  }
    
                  leaf vni-end {
                    type Vni-range;
                    description "Range End";
                  }
                }  // list member-vni
              }  // container member-vnis
    
              leaf vx-lan-udp-port {
                type Vxlan-udp-port-enum;
                default "ietf-udp-port";
                description
                  "UDP port number in VxLAN encapsulation";
              }
    
              leaf overlay-encapsulation {
                type Overlay-encap-enum;
                default "vx-lan-encapsulation";
                description
                  "The Overlay Encapsulation for this NVE";
              }
    
              leaf source-interface {
                type string;
                description
                  "Source Interface for this NVE";
              }
    
              leaf ingress-replication-protocol {
                type Ir-protocol-enum;
                description
                  "The Ingress Replication Protocol for this NVE";
              }
            }  // container nve
    
            container ipv6-neighbor {
              description
                "IPv6 interface neighbor or neighbor discovery
    configuration";
              container raspecific-route-s {
                description
                  "IPv6 Router Advertisement (RA) Specific Route";
                list raspecific-route {
                  key "specific-route";
                  description
                    "IPv6 Router Advertisement (RA) Specific Route";
                  leaf specific-route {
                    type inet:ipv6-address-no-zone;
                    description "IPv6 Address";
                  }
    
                  leaf prefix-length {
                    type xr:Ipv6-prefix-length;
                    description
                      "Prefix mask length";
                  }
    
                  leaf lifetime {
                    type uint32 {
                      range "0..4294967295";
                    }
                    description
                      "Lifetime (seconds)";
                  }
    
                  leaf preference {
                    type Ipv6-nd-router-pref;
                    description "Preference";
                  }
                }  // list raspecific-route
              }  // container raspecific-route-s
    
              container radns-searches {
                description
                  "IPv6 Router Advertisement (RA) DNS Search List";
                list radns-search {
                  key "dns-search-list";
                  description
                    "IPv6 Router Advertisement (RA) DNS Search List";
                  leaf dns-search-list {
                    type xr:Cisco-ios-xr-string;
                    description "Search List";
                  }
    
                  leaf lifetime {
                    type uint32 {
                      range "0..4294967295";
                    }
                    mandatory true;
                    description
                      "Lifetime value in seconds";
                  }
                }  // list radns-search
              }  // container radns-searches
    
              container radns-servers {
                description
                  "IPv6 Router Advertisement (RA) DNS Servre";
                list radns-server {
                  key "dns-server";
                  description
                    "IPv6 Router Advertisement (RA) DNS Servre";
                  leaf dns-server {
                    type inet:ipv6-address-no-zone;
                    description "IPv6 Address";
                  }
    
                  leaf lifetime {
                    type uint32 {
                      range "0..4294967295";
                    }
                    mandatory true;
                    description
                      "Lifetime value in seconds";
                  }
                }  // list radns-server
              }  // container radns-servers
    
              container ra-interval {
                presence
                  "Indicates a ra-interval node is configured.";
                description
                  "Set IPv6 Router Advertisement (RA) interval in
    seconds";
                leaf maximum {
                  type uint32 {
                    range "4..1800";
                  }
                  mandatory true;
                  description
                    "Maximum RA interval in seconds";
                }
    
                leaf minimum {
                  type uint32 {
                    range "3..1800";
                  }
                  description
                    "Minimum RA interval in seconds. Must be less
    than 0.75 * maximum interval";
                }
              }  // container ra-interval
    
              container ipv6-prefixes {
                description "Prefixes ";
                list ipv6-prefix {
                  key "prefix";
                  description
                    "Configure prefix with paramemters";
                  leaf prefix {
                    type inet:ipv6-address-no-zone;
                    description "IPv6 prefix";
                  }
    
                  leaf prefix-zone {
                    type string {
                      length "1..9";
                    }
                    mandatory true;
                    description "Prefix zone";
                  }
    
                  leaf prefix-length {
                    type xr:Ipv6-prefix-length;
                    mandatory true;
                    description
                      "Prefix mask length";
                  }
    
                  leaf valid-lifetime {
                    type uint32 {
                      range "0..4294967295";
                    }
                    description
                      "Valid Lifetime (seconds)";
                  }
    
                  leaf preferred-lifetime {
                    type uint32 {
                      range "0..4294967295";
                    }
                    description
                      "Preferred Lifetime (seconds) must be <= Valid
    Lifetime";
                  }
    
                  leaf off-link {
                    type boolean;
                    description
                      "If set, prefix will not be used for onlink
    determination";
                  }
    
                  leaf no-auto-config {
                    type boolean;
                    description
                      "If set, prefix will not be used for auto
    configuration";
                  }
    
                  leaf no-advertize {
                    type boolean;
                    description
                      "If set, prefix will not be advertized";
                  }
    
                  leaf expiry-month {
                    type Ipv6nd-month;
                    description
                      "Month to expire valid lifetime";
                  }
    
                  leaf expiry-date {
                    type uint32 {
                      range "1..31";
                    }
                    description
                      "Date to expire valid lifetime";
                  }
    
                  leaf expiry-year {
                    type uint32 {
                      range "2003..2035";
                    }
                    description
                      "Year to expire valid lifetime";
                  }
    
                  leaf expiry-hour {
                    type uint32 {
                      range "0..23";
                    }
                    description
                      "Hour to expire valid lifetime";
                  }
    
                  leaf expiry-minute {
                    type uint32 {
                      range "0..59";
                    }
                    description
                      "Minute to expire valid lifetime";
                  }
    
                  leaf pref-expiry-month {
                    type Ipv6nd-month;
                    description
                      "Month to expire preferred lifetime";
                  }
    
                  leaf pref-expiry-date {
                    type uint32 {
                      range "1..31";
                    }
                    description
                      "Date to expire preferred lifetime";
                  }
    
                  leaf pref-expiry-year {
                    type uint32 {
                      range "2003..2035";
                    }
                    description
                      "Year to expire preferred lifetime";
                  }
    
                  leaf pref-expiry-hour {
                    type uint32 {
                      range "0..23";
                    }
                    description
                      "Hour to expire preferred lifetime";
                  }
    
                  leaf pref-expiry-minute {
                    type uint32 {
                      range "0..59";
                    }
                    description
                      "Minute to expire preferred lifetime";
                  }
                }  // list ipv6-prefix
              }  // container ipv6-prefixes
    
              leaf reachable-time {
                type uint32 {
                  range "0..3600000";
                }
                units "millisecond";
                description
                  "Set advertised reachability time in
    milliseconds";
              }
    
              leaf ra-unspecify-hoplimit {
                type empty;
                description
                  "Unspecify IPv6 Router Advertisement (RA)
    hop-limit";
              }
    
              leaf dad-attempts {
                type uint32 {
                  range "0..600";
                }
                description
                  "Set IPv6 duplicate address detection transmits";
              }
    
              leaf srp-multicast-encapsulation {
                type Ipv6srp-encapsulation;
                description
                  "Set SRP multicast prefer encapsulation";
              }
    
              leaf ns-interval {
                type uint32 {
                  range "1000..4294967295";
                }
                units "millisecond";
                description
                  "Set advertised NS retransmission interval in
    milliseconds";
              }
    
              leaf cache-limit {
                type uint32 {
                  range "0..128000";
                }
                description
                  "Set the cache limit for neighbor entries";
              }
    
              leaf redirect {
                type empty;
                description
                  "Enable sending of ICMP Redirect messages";
              }
    
              leaf srp-unicast-encapsulation {
                type Ipv6srp-encapsulation;
                description
                  "Set SRP unicast prefer encapsulation";
              }
    
              leaf ramtu-suppress {
                type empty;
                description
                  "Enable suppress MTU in IPv6 router
    advertisement";
              }
    
              leaf managed-config {
                type empty;
                description
                  "Host to use stateful protocol for address
    configuration";
              }
    
              leaf ra-unicast {
                type empty;
                description
                  "Enable unicast IPv6 router advertisement";
              }
    
              leaf ra-lifetime {
                type uint32 {
                  range "0..9000";
                }
                units "second";
                description
                  "Set IPv6 Router Advertisement (RA) lifetime in
    seconds";
              }
    
              leaf other-config {
                type empty;
                description
                  "Host to use stateful protocol for non-address
    configuration";
              }
    
              leaf ra-suppress {
                type empty;
                description
                  "Enable suppress IPv6 router advertisement";
              }
    
              leaf router-preference {
                type Ipv6-nd-router-pref;
                description
                  "RA Router Preference";
              }
            }  // container ipv6-neighbor
    
            container subscriber {
              description
                "Subscribers on interface";
              container ip-subscriber {
                description
                  "IP subscribers on interface";
                container ipv4 {
                  description "IPv4 subscriber";
                  container l2-connected {
                    description
                      "L2 connected IPv4 subscriber";
                    container initiator {
                      description
                        "Configure IP subscriber initiator";
                      container unclassified-source-fsol {
                        presence
                          "Indicates a unclassified-source-fsol node is configured.";
                        description
                          "Configure IP subscriber unclassified source
    initiator";
                        leaf enable {
                          type empty;
                          mandatory true;
                          description
                            "Enable unclassified source";
                        }
    
                        leaf address-unique {
                          type boolean;
                          mandatory true;
                          description
                            "Check for subscriber IP uniqueness during
    first sign of life";
                        }
                      }  // container unclassified-source-fsol
    
                      leaf dhcp {
                        type empty;
                        description
                          "Configure IP subscriber DHCP initiator";
                      }
                    }  // container initiator
                  }  // container l2-connected
    
                  container routed {
                    description
                      "Routed IPv4 subscriber";
                    container initiator {
                      description
                        "Configure IP subscriber initiator";
                      leaf unclassified-ip {
                        type empty;
                        description
                          "Configure IPv4 subscriber unclassified
    source initiator";
                      }
    
                      leaf dhcp {
                        type empty;
                        description
                          "Configure IPv4 subscriber DHCP initiator";
                      }
    
                      leaf dhcp-snoop {
                        type empty;
                        description
                          "Configure IPv4 subscriber DHCP Snoop
    initiator";
                      }
                    }  // container initiator
                  }  // container routed
                }  // container ipv4
    
                container session-limit {
                  description
                    "IP subscriber session limit";
                  container total {
                    description
                      "Session limit for all sources";
                    leaf per-vlan {
                      type uint32;
                      default "0";
                      description
                        "Configure per-vlan session limit for all
    sources";
                    }
                  }  // container total
    
                  container unclassified-source {
                    description
                      "Session limit for unclassified sources";
                    leaf per-vlan {
                      type uint32;
                      default "0";
                      description
                        "Configure per-vlan session limit for
    unclassified sources";
                    }
                  }  // container unclassified-source
                }  // container session-limit
    
                container ipv6 {
                  description "IPv6 subscriber";
                  container l2-connected {
                    description
                      "L2 connected IPv6 subscriber";
                    container initiator {
                      description
                        "Configure IPv6 subscriber initiator";
                      container unclassified-source-fsol {
                        presence
                          "Indicates a unclassified-source-fsol node is configured.";
                        description
                          "Configure IP subscriber unclassified source
    initiator";
                        leaf enable {
                          type empty;
                          mandatory true;
                          description
                            "Enable unclassified source";
                        }
    
                        leaf address-unique {
                          type boolean;
                          mandatory true;
                          description
                            "Check for subscriber IP uniqueness during
    first sign of life";
                        }
                      }  // container unclassified-source-fsol
    
                      leaf dhcp {
                        type empty;
                        description
                          "Configure IPv6 subscriber DHCP initiator";
                      }
                    }  // container initiator
                  }  // container l2-connected
    
                  container routed {
                    description
                      "Routed IPv6 subscriber";
                    container initiator {
                      description
                        "Configure IP subscriber initiator";
                      leaf unclassified-ip {
                        type uint32 {
                          range "1..128";
                        }
                        default "128";
                        description
                          "Configure unclassified packets as
    first-sign-of-life for IPv6 subscriber";
                      }
    
                      leaf dhcp {
                        type uint32 {
                          range "1..128";
                        }
                        default "128";
                        description
                          "Configure IPv6 subscriber DHCP initiator";
                      }
    
                      leaf dhcp-snoop {
                        type uint32 {
                          range "1..128";
                        }
                        default "128";
                        description
                          "Configure IPv6 subscriber DHCP Snoop
    initiator";
                      }
                    }  // container initiator
                  }  // container routed
                }  // container ipv6
    
                leaf subscriber-templates {
                  type uint32 {
                    range "1..10";
                  }
                  default "10";
                  description
                    "Enable subscriber templates on this access
    interface";
                }
    
                leaf interface {
                  type empty;
                  description
                    "Enable IP Static subscriber";
                }
              }  // container ip-subscriber
            }  // container subscriber
    
            container mpls {
              status deprecated;
              description
                "This model is deprecated and is replaced by
    Cisco-IOS-XR-um-if-mpls-cfg.yang which will
    provide the compatible functionalities.  MPLS
    configuration under an interface";
              container label-security {
                description
                  "MPLS label security";
                leaf multi-label-drop {
                  type empty;
                  description
                    "Enable drop of multi-labelled incoming packets
    on a Interface";
                }
    
                leaf rpf {
                  type empty;
                  description
                    "Enable MPLS RPF for incoming packets on a
    Interface";
                }
              }  // container label-security
    
              leaf mtu {
                type uint32 {
                  range "68..65535";
                }
                description
                  "Set the MPLS MTU for the interface";
              }
            }  // container mpls
    
            leaf laser-squelch {
              type empty;
              description
                "Configure Laser-Squelch";
            }
    
            leaf holdoff-time {
              type uint32 {
                range "0..3000";
              }
              description
                "Configure Holdoff Time";
            }
    
            container loopbacks {
              description
                "Configure Extended loopback (diagnostics)";
              list loopback {
                key "level";
                description
                  "Configure extended loopback mode";
                leaf level {
                  type uint32 {
                    range "1..3";
                  }
                  description "Level";
                }
    
                leaf loopback {
                  type Extended-ethernet-loopback;
                  mandatory true;
                  description "Loopback";
                }
              }  // list loopback
            }  // container loopbacks
    
            leaf perf-mon-disable {
              type empty;
              description
                "Configure Performance Monitoring ";
            }
    
            container ppp {
              description
                "Interface PPP configuration data";
              container ipcp {
                description
                  "PPP IPCP configuration data";
                container peer-address {
                  description
                    "IPCP address parameters";
                  leaf default {
                    type inet:ipv4-address-no-zone;
                    description
                      "Specify an IP address to assign to peers
    through IPCP";
                  }
                }  // container peer-address
    
                container dns {
                  description
                    "IPCP DNS parameters";
                  container dns-addresses {
                    description
                      "Specify DNS address(es) to provide";
                    leaf primary {
                      type inet:ipv4-address-no-zone;
                      description
                        "Primary DNS IP address";
                    }
    
                    leaf secondary {
                      type inet:ipv4-address-no-zone;
                      description
                        "Secondary DNS IP address";
                    }
                  }  // container dns-addresses
                }  // container dns
    
                leaf neighbor-route-disable {
                  type empty;
                  description
                    "Disable Neighbor Route installation";
                }
              }  // container ipcp
            }  // container ppp
    
            leaf optics-dac-rate {
              type Optics-dac-rate;
              description
                "Configure optics sampling rate ";
            }
    
            container performance-management {
              description
                "Configure pm parameters";
              container stm-hour24 {
                description "set STM threshold";
                container stm-hour24-stm {
                  description
                    "Configure stm performance monitoring";
                  container stm-hour24-stm-reports {
                    description
                      "set stm TCA reporting status";
                    list stm-hour24-stm-report {
                      key "stm-report";
                      description "none";
                      leaf stm-report {
                        type Stm-report;
                        description
                          "Stm Report Type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description "Stm Report";
                      }
                    }  // list stm-hour24-stm-report
                  }  // container stm-hour24-stm-reports
    
                  container stm-hour24-stm-thresholds {
                    description
                      "Configure threshold on stm parameters";
                    list stm-hour24-stm-threshold {
                      key "stm-threshold";
                      description "none";
                      leaf stm-threshold {
                        type Stm-threshold;
                        description
                          "Stm Threshold Type";
                      }
    
                      leaf stm-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "Stm Thresh Value";
                      }
                    }  // list stm-hour24-stm-threshold
                  }  // container stm-hour24-stm-thresholds
                }  // container stm-hour24-stm
              }  // container stm-hour24
    
              container second30-gfp {
                description
                  "set opr min threshold";
                container second30-gfp {
                  description
                    "Configure gfp performance monitoring";
                  container second30-gfp-thresholds {
                    description
                      "Configure threshold on gfp parameters";
                    list second30-gfp-threshold {
                      key "gfp-threshold";
                      description "none";
                      leaf gfp-threshold {
                        type Gfp-threshold;
                        description
                          "Gfp Threshold Type";
                      }
    
                      leaf gfp-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "Gfp Threshold Value";
                      }
                    }  // list second30-gfp-threshold
                  }  // container second30-gfp-thresholds
    
                  container second30-gfp-reports {
                    description
                      "set gfp TCA reporting status";
                    list second30-gfp-report {
                      key "gfp-report";
                      description "none";
                      leaf gfp-report {
                        type Gfp-report;
                        description
                          "Gfp Report Type";
                      }
                    }  // list second30-gfp-report
                  }  // container second30-gfp-reports
                }  // container second30-gfp
              }  // container second30-gfp
    
              container minute15-gfp {
                description
                  "set opr min threshold";
                container minute15-gfp {
                  description
                    "Configure gfp performance monitoring";
                  container minute15-gfp-reports {
                    description
                      "set gfp TCA reporting status";
                    list minute15-gfp-report {
                      key "gfp-report";
                      description "none";
                      leaf gfp-report {
                        type Gfp-report;
                        description
                          "Gfp Report Type";
                      }
                    }  // list minute15-gfp-report
                  }  // container minute15-gfp-reports
    
                  container minute15-gfp-thresholds {
                    description
                      "Configure threshold on gfp parameters";
                    list minute15-gfp-threshold {
                      key "gfp-threshold";
                      description "none";
                      leaf gfp-threshold {
                        type Gfp-threshold;
                        description
                          "Gfp Threshold Type";
                      }
    
                      leaf gfp-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "Gfp Threshold Value";
                      }
                    }  // list minute15-gfp-threshold
                  }  // container minute15-gfp-thresholds
                }  // container minute15-gfp
              }  // container minute15-gfp
    
              container second30-path {
                description
                  "set opr min threshold";
                container second30otn-path {
                  description
                    "configure otn g709 performance monitoring";
                  container sec30-otn-path-threshes {
                    description
                      "Configure threshold on otn parameters";
                    list sec30-otn-path-thresh {
                      key "otn-threshold";
                      description "none";
                      leaf otn-threshold {
                        type Otn-threshold;
                        description
                          "Otn Threshold Type";
                      }
    
                      leaf otn-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "Otn Threshold Value";
                      }
                    }  // list sec30-otn-path-thresh
                  }  // container sec30-otn-path-threshes
    
                  container second30otn-path-reports {
                    description
                      "set otn TCA reporting status";
                    list second30otn-path-report {
                      key "otn-report";
                      description "none";
                      leaf otn-report {
                        type Otn-report;
                        description
                          "Otn Report Type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description "Otn Report";
                      }
                    }  // list second30otn-path-report
                  }  // container second30otn-path-reports
                }  // container second30otn-path
              }  // container second30-path
    
              container sonet-minute15 {
                description
                  "set Sonet threshold";
                container sonet-minute15-path {
                  description
                    "Configure Path performance monitoring";
                  container sonet-minute15-path-reports {
                    description
                      "set Path TCA reporting status";
                    list sonet-minute15-path-report {
                      key "path-report";
                      description "none";
                      leaf path-report {
                        type Path-report;
                        description
                          "Path Report Type";
                      }
                    }  // list sonet-minute15-path-report
                  }  // container sonet-minute15-path-reports
    
                  container sonet-minute15-path-thresholds {
                    description
                      "Configure threshold on Path parameters";
                    list sonet-minute15-path-threshold {
                      key "path-threshold";
                      description "none";
                      leaf path-threshold {
                        type Path-threshold;
                        description
                          "Path Threshold Type";
                      }
    
                      leaf path-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "Path Threshold Value";
                      }
                    }  // list sonet-minute15-path-threshold
                  }  // container sonet-minute15-path-thresholds
                }  // container sonet-minute15-path
    
                container sonet-minute15-ocn {
                  description
                    "Configure ocn performance monitoring";
                  container sonet-minute15-ocn-reports {
                    description
                      "set ocn TCA reporting status";
                    list sonet-minute15-ocn-report {
                      key "ocn-report";
                      description "none";
                      leaf ocn-report {
                        type Ocn-report;
                        description
                          "Ocn Report Type";
                      }
                    }  // list sonet-minute15-ocn-report
                  }  // container sonet-minute15-ocn-reports
    
                  container sonet-minute15-ocn-thresholds {
                    description
                      "Configure threshold on ocn parameters";
                    list sonet-minute15-ocn-threshold {
                      key "ocn-threshold";
                      description "none";
                      leaf ocn-threshold {
                        type Ocn-threshold;
                        description
                          "Ocn Threshold Type";
                      }
    
                      leaf ocn-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "Ocn Threshold Value";
                      }
                    }  // list sonet-minute15-ocn-threshold
                  }  // container sonet-minute15-ocn-thresholds
                }  // container sonet-minute15-ocn
              }  // container sonet-minute15
    
              container hour24-gfp {
                description
                  "Configure pm parameters of gfp 24 hour interval";
                container hour24-gfp {
                  description
                    "Configure gfp performance monitoring";
                  container hour24-gfp-reports {
                    description
                      "set gfp TCA reporting status";
                    list hour24-gfp-report {
                      key "gfp-report";
                      description "none";
                      leaf gfp-report {
                        type Gfp-report;
                        description
                          "Gfp Report Type";
                      }
                    }  // list hour24-gfp-report
                  }  // container hour24-gfp-reports
    
                  container hour24-gfp-thresholds {
                    description
                      "Configure threshold on gfp parameters";
                    list hour24-gfp-threshold {
                      key "gfp-threshold";
                      description "none";
                      leaf gfp-threshold {
                        type Gfp-threshold;
                        description
                          "Gfp Threshold Type";
                      }
    
                      leaf gfp-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "Gfp Thresh Value";
                      }
                    }  // list hour24-gfp-threshold
                  }  // container hour24-gfp-thresholds
                }  // container hour24-gfp
              }  // container hour24-gfp
    
              container second30otn-tcms {
                description
                  "set opr min threshold";
                list second30otn-tcm {
                  key "tcm-number";
                  description
                    "configure otn g709 tcm's performance
    monitoring";
                  container sec30-otn-tcm-threshes {
                    description
                      "Configure threshold on otn parameters";
                    list sec30-otn-tcm-thresh {
                      key "otn-threshold";
                      description "none";
                      leaf otn-threshold {
                        type Otn-tcm-threshold;
                        description
                          "Otn Threshold Type";
                      }
    
                      leaf otn-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "Otn Threshold Value";
                      }
                    }  // list sec30-otn-tcm-thresh
                  }  // container sec30-otn-tcm-threshes
    
                  container second30otn-tcm-reports {
                    description
                      "set otn TCA reporting status";
                    list second30otn-tcm-report {
                      key "otn-report";
                      description "none";
                      leaf otn-report {
                        type Otn-tcm-report;
                        description
                          "Otn Report Type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description "Otn Report";
                      }
                    }  // list second30otn-tcm-report
                  }  // container second30otn-tcm-reports
    
                  leaf tcm-number {
                    type uint32;
                    description "TCM number";
                  }
                }  // list second30otn-tcm
              }  // container second30otn-tcms
    
              container ethernet-hour24 {
                description
                  "Configure pm parameters of 24 hour interval";
                container hour24-ether {
                  description
                    "Configure ether performance monitoring";
                  container hour24-ether-thresholds {
                    description
                      "Configure threshold on ether parameters";
                    list hour24-ether-threshold {
                      key "ether-threshold";
                      description "none";
                      leaf ether-threshold {
                        type Ether-threshold;
                        description
                          "Ether Threshold Type";
                      }
    
                      leaf ether-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "Ether Thresh Value";
                      }
                    }  // list hour24-ether-threshold
                  }  // container hour24-ether-thresholds
    
                  container hour24-ether-reports {
                    description
                      "set ether TCA reporting status";
                    list hour24-ether-report {
                      key "ether-report";
                      description "none";
                      leaf ether-report {
                        type Ether-report;
                        description
                          "Ether Report Type";
                      }
                    }  // list hour24-ether-report
                  }  // container hour24-ether-reports
                }  // container hour24-ether
              }  // container ethernet-hour24
    
              container minute15otn-tcms {
                description
                  "set opr min threshold";
                list minute15otn-tcm {
                  key "tcm-number";
                  description
                    "configure otn g709 tcm's performance
    monitoring";
                  container min15-otn-tcm-threshes {
                    description
                      "Configure threshold on otn parameters";
                    list min15-otn-tcm-thresh {
                      key "otn-threshold";
                      description "none";
                      leaf otn-threshold {
                        type Otn-tcm-threshold;
                        description
                          "Otn Threshold Type";
                      }
    
                      leaf otn-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "Otn Threshold Value";
                      }
                    }  // list min15-otn-tcm-thresh
                  }  // container min15-otn-tcm-threshes
    
                  container minute15otn-tcm-reports {
                    description
                      "set otn TCA reporting status";
                    list minute15otn-tcm-report {
                      key "otn-report";
                      description "none";
                      leaf otn-report {
                        type Otn-tcm-report;
                        description
                          "Otn Report Type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description "Otn Report";
                      }
                    }  // list minute15otn-tcm-report
                  }  // container minute15otn-tcm-reports
    
                  leaf tcm-number {
                    type uint32;
                    description "TCM number";
                  }
                }  // list minute15otn-tcm
              }  // container minute15otn-tcms
    
              container oc-hour24 {
                description "set Oc threshold";
                container oc-hour24-ocn {
                  description
                    "Configure ocn performance monitoring";
                  container oc-hour24-ocn-reports {
                    description
                      "set ocn TCA reporting status";
                    list oc-hour24-ocn-report {
                      key "ocn-report";
                      description "none";
                      leaf ocn-report {
                        type Ocn-report;
                        description
                          "Ocn Report Type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description "Ocn Report";
                      }
                    }  // list oc-hour24-ocn-report
                  }  // container oc-hour24-ocn-reports
    
                  container oc-hour24-ocn-thresholds {
                    description
                      "Configure threshold on ocn parameters";
                    list oc-hour24-ocn-threshold {
                      key "ocn-threshold";
                      description "none";
                      leaf ocn-threshold {
                        type Ocn-threshold;
                        description
                          "Ocn Threshold Type";
                      }
    
                      leaf ocn-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "Ocn Thresh Value";
                      }
                    }  // list oc-hour24-ocn-threshold
                  }  // container oc-hour24-ocn-thresholds
                }  // container oc-hour24-ocn
              }  // container oc-hour24
    
              container ethernet-minute15 {
                description
                  "set opr min threshold";
                container minute15-ether {
                  description
                    "Configure ether performance monitoring";
                  container minute15-ether-thresholds {
                    description
                      "Configure threshold on ether parameters";
                    list minute15-ether-threshold {
                      key "ether-threshold";
                      description "none";
                      leaf ether-threshold {
                        type Ether-threshold;
                        description
                          "Ether Threshold Type";
                      }
    
                      leaf ether-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "Ether Threshold Value";
                      }
                    }  // list minute15-ether-threshold
                  }  // container minute15-ether-thresholds
    
                  container minute15-ether-reports {
                    description
                      "set ether TCA reporting status";
                    list minute15-ether-report {
                      key "ether-report";
                      description "none";
                      leaf ether-report {
                        type Ether-report;
                        description
                          "Ether Report Type";
                      }
                    }  // list minute15-ether-report
                  }  // container minute15-ether-reports
                }  // container minute15-ether
              }  // container ethernet-minute15
    
              container ho-vc-hour24 {
                description
                  "set HO_VC threshold";
                container ho-vc-hour24ho-vc {
                  description
                    "Configure ho_vc performance monitoring";
                  container ho-vc-hour24ho-vc-reports {
                    description
                      "set ho_vc TCA reporting status";
                    list ho-vc-hour24ho-vc-report {
                      key "ho-vc-report";
                      description "none";
                      leaf ho-vc-report {
                        type Ho-vc-report;
                        description
                          "ho_vc Report Type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description
                          "ho_vc Report";
                      }
                    }  // list ho-vc-hour24ho-vc-report
                  }  // container ho-vc-hour24ho-vc-reports
    
                  container ho-vc-hour24ho-vc-thresholds {
                    description
                      "Configure threshold on ho_vc parameters";
                    list ho-vc-hour24ho-vc-threshold {
                      key "ho-vc-threshold";
                      description "none";
                      leaf ho-vc-threshold {
                        type Ho-vc-threshold;
                        description
                          "ho_vc Threshold Type";
                      }
    
                      leaf ho-vc-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "ho_vc Thresh Value";
                      }
                    }  // list ho-vc-hour24ho-vc-threshold
                  }  // container ho-vc-hour24ho-vc-thresholds
                }  // container ho-vc-hour24ho-vc
              }  // container ho-vc-hour24
    
              container second30 {
                description
                  "Configure optics performance monitoring for 30
    sec";
                container second30otnsec {
                  description
                    "Configure otnsec performance monitoring";
                  container second30otnsec-reports {
                    description
                      "set otnsec TCA reporting status";
                    list second30otnsec-report {
                      key "otnsec-report";
                      description "none";
                      leaf otnsec-report {
                        type Otnsec-report;
                        description
                          "OTNSEC pm Report Type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description
                          "OTNSEC pm Report";
                      }
                    }  // list second30otnsec-report
                  }  // container second30otnsec-reports
    
                  container second30otnsec-thresholds {
                    description
                      "Configure otnsec threshold";
                    list second30otnsec-threshold {
                      key "otnsec-threshold";
                      description "none";
                      leaf otnsec-threshold {
                        type Otnsec-threshold;
                        description
                          "OTNSEC Threshold Type";
                      }
    
                      leaf otnsec-threshold-value {
                        type string {
                          length "1..20";
                        }
                        mandatory true;
                        description
                          "OTNSEC Threshold Value";
                      }
                    }  // list second30otnsec-threshold
                  }  // container second30otnsec-thresholds
                }  // container second30otnsec
    
                container second30pcs {
                  description
                    "Configure pcs performance monitoring";
                  container second30pcs-thresholds {
                    description
                      "Configure pcs threshold";
                    list second30pcs-threshold {
                      key "pcs-threshold";
                      description "none";
                      leaf pcs-threshold {
                        type Pcs-threshold;
                        description
                          "Pcs Threshold Type";
                      }
    
                      leaf pcs-threshold-value {
                        type string {
                          length "1..20";
                        }
                        mandatory true;
                        description
                          "Pcs Threshold Value";
                      }
                    }  // list second30pcs-threshold
                  }  // container second30pcs-thresholds
    
                  container second30pcs-reports {
                    description
                      "set pcs TCA reporting status";
                    list second30pcs-report {
                      key "pcs-report";
                      description "none";
                      leaf pcs-report {
                        type Pcs-report;
                        description
                          "Pcs Report Type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description "PCS Report";
                      }
                    }  // list second30pcs-report
                  }  // container second30pcs-reports
                }  // container second30pcs
    
                container second30fec {
                  description
                    "Configure fec g709 performance monitoring";
                  container second30fec-thresholds {
                    description
                      "Configure fec threshold";
                    list second30fec-threshold {
                      key "fec-threshold";
                      description "none";
                      leaf fec-threshold {
                        type Fec-threshold;
                        description
                          "Fec Threshold Type";
                      }
    
                      leaf fec-threshold-value {
                        type string {
                          length "1..20";
                        }
                        mandatory true;
                        description
                          "Fec Threshold Value";
                      }
                    }  // list second30fec-threshold
                  }  // container second30fec-thresholds
    
                  container second30fec-reports {
                    description
                      "set fec TCA reporting status";
                    list second30fec-report {
                      key "fec-report";
                      description "none";
                      leaf fec-report {
                        type Fec-report;
                        description
                          "Fec Report Type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description "Fec Report";
                      }
                    }  // list second30fec-report
                  }  // container second30fec-reports
                }  // container second30fec
    
                container second30-optics {
                  description
                    "Configure optics performance monitoring";
                  container second30-optics-reports {
                    description
                      "set optics TCA reporting status";
                    list second30-optics-report {
                      key "optics-report";
                      description "none";
                      leaf optics-report {
                        type Optics-report;
                        description
                          "Optics Report Type";
                      }
                    }  // list second30-optics-report
                  }  // container second30-optics-reports
    
                  container second30-optics-thresholds {
                    description
                      "Configure threshold on optics parameters";
                    list second30-optics-threshold {
                      key "optics-threshold";
                      description "none";
                      leaf optics-threshold {
                        type Optics-threshold;
                        description
                          "Optics Threshold Type";
                      }
    
                      leaf optics-threshold-value {
                        type int32;
                        description
                          "Optics Thresh Value";
                      }
    
                      leaf dbm {
                        type uint32;
                        mandatory true;
                        description
                          "Used only for Opt and Opr,To Enter
    Threshold in dbm use 1";
                      }
                    }  // list second30-optics-threshold
                  }  // container second30-optics-thresholds
                }  // container second30-optics
    
                container second30secyif {
                  description
                    "Configure secy-if performance monitoring";
                  container second30secyif-thresholds {
                    description
                      "Configure threshold on secyif parameters";
                    list second30secyif-threshold {
                      key "secyif-threshold";
                      description "none";
                      leaf secyif-threshold {
                        type Secyif-threshold;
                        description
                          "Secyif Threshold Type";
                      }
    
                      leaf secyif-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "Secyif Threshold Value";
                      }
                    }  // list second30secyif-threshold
                  }  // container second30secyif-thresholds
    
                  container second30secyif-reports {
                    description
                      "set secyif TCA reporting status";
                    list second30secyif-report {
                      key "secyif-report";
                      description "none";
                      leaf secyif-report {
                        type Secyif-report;
                        description
                          "Secyif Report Type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description
                          "Enabled Secyif Report";
                      }
                    }  // list second30secyif-report
                  }  // container second30secyif-reports
                }  // container second30secyif
    
                container second30secyrx {
                  description
                    "Configure secy-rx performance monitoring";
                  container second30secyrx-thresholds {
                    description
                      "Configure threshold on secyrx parameters";
                    list second30secyrx-threshold {
                      key "secyrx-threshold";
                      description "none";
                      leaf secyrx-threshold {
                        type Secyrx-threshold;
                        description
                          "Secyrx Threshold Type";
                      }
    
                      leaf secyrx-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "Secyrx Threshold Value";
                      }
                    }  // list second30secyrx-threshold
                  }  // container second30secyrx-thresholds
    
                  container second30secyrx-reports {
                    description
                      "set secyrx TCA reporting status";
                    list second30secyrx-report {
                      key "secyrx-report";
                      description "none";
                      leaf secyrx-report {
                        type Secyrx-report;
                        description
                          "Secyrx Report Type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description
                          "Enabled Secyrx Report";
                      }
                    }  // list second30secyrx-report
                  }  // container second30secyrx-reports
                }  // container second30secyrx
    
                container second30prbs {
                  description
                    "Configure prbs performance monitoring data";
                  container second30prbs-thresholds {
                    description
                      "Configure prbs threshold";
                    list second30prbs-threshold {
                      key "prbs-threshold";
                      description "none";
                      leaf prbs-threshold {
                        type Prbs-threshold;
                        description
                          "Prbs Threshold Type";
                      }
    
                      leaf prbs-threshold-value {
                        type string {
                          length "1..20";
                        }
                        mandatory true;
                        description
                          "Prbs Threshold Value";
                      }
                    }  // list second30prbs-threshold
                  }  // container second30prbs-thresholds
    
                  container second30prbs-reports {
                    description
                      "set prbs TCA reporting status";
                    list second30prbs-report {
                      key "prbs-report";
                      description "none";
                      leaf prbs-report {
                        type Prbs-report;
                        description
                          "Prbs Report Type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description
                          "Prbs Report";
                      }
                    }  // list second30prbs-report
                  }  // container second30prbs-reports
                }  // container second30prbs
    
                container second30otn {
                  description
                    "configure otn g709 performance monitoring";
                  container second30-otn-threshes {
                    description
                      "Configure threshold on otn parameters";
                    list second30-otn-thresh {
                      key "otn-threshold";
                      description "none";
                      leaf otn-threshold {
                        type Otn-threshold;
                        description
                          "Otn Threshold Type";
                      }
    
                      leaf otn-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "Otn Threshold Value";
                      }
                    }  // list second30-otn-thresh
                  }  // container second30-otn-threshes
    
                  container second30otn-reports {
                    description
                      "set otn TCA reporting status";
                    list second30otn-report {
                      key "otn-report";
                      description "none";
                      leaf otn-report {
                        type Otn-report;
                        description
                          "Otn Report Type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description "Otn Report";
                      }
                    }  // list second30otn-report
                  }  // container second30otn-reports
                }  // container second30otn
    
                container second30secytx {
                  description
                    "Configure secy-tx performance monitoring";
                  container second30secytx-thresholds {
                    description
                      "Configure threshold on secytx parameters";
                    list second30secytx-threshold {
                      key "secytx-threshold";
                      description "none";
                      leaf secytx-threshold {
                        type Secytx-threshold;
                        description
                          "Secytx Threshold Type";
                      }
    
                      leaf secytx-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "Secytx Threshold Value";
                      }
                    }  // list second30secytx-threshold
                  }  // container second30secytx-thresholds
    
                  container second30secytx-reports {
                    description
                      "set secytx TCA reporting status";
                    list second30secytx-report {
                      key "secytx-report";
                      description "none";
                      leaf secytx-report {
                        type Secytx-report;
                        description
                          "Secytx Report Type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description
                          "Enabled Secytx Report";
                      }
                    }  // list second30secytx-report
                  }  // container second30secytx-reports
                }  // container second30secytx
              }  // container second30
    
              container hour24otn-tcms {
                description
                  "Configure pm parameters of tcm's 24 hour
    interval";
                list hour24otn-tcm {
                  key "tcm-number";
                  description
                    "configure otn g709 tcm's performance
    monitoring";
                  container hour24otn-tcm-thresholds {
                    description
                      "Configure threshold on otn parameters";
                    list hour24otn-tcm-threshold {
                      key "otn-threshold";
                      description "none";
                      leaf otn-threshold {
                        type Otn-tcm-threshold;
                        description
                          "Otn Threshold Type";
                      }
    
                      leaf otn-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "Otn Threshold Value";
                      }
                    }  // list hour24otn-tcm-threshold
                  }  // container hour24otn-tcm-thresholds
    
                  container hour24otn-tcm-reports {
                    description
                      "set otn TCA reporting status";
                    list hour24otn-tcm-report {
                      key "otn-report";
                      description "none";
                      leaf otn-report {
                        type Otn-tcm-report;
                        description
                          "Otn Report Type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description "Otn Report";
                      }
                    }  // list hour24otn-tcm-report
                  }  // container hour24otn-tcm-reports
    
                  leaf tcm-number {
                    type uint32;
                    description "TCM number";
                  }
                }  // list hour24otn-tcm
              }  // container hour24otn-tcms
    
              container sts-minute15 {
                description "set STS threshold";
                container sts-minute15-path {
                  description
                    "Configure Path performance monitoring";
                  container sts-minute15-path-reports {
                    description
                      "set Path TCA reporting status";
                    list sts-minute15-path-report {
                      key "path-report";
                      description "none";
                      leaf path-report {
                        type Sts-report;
                        description
                          "Path Report Type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description
                          "Path Report";
                      }
                    }  // list sts-minute15-path-report
                  }  // container sts-minute15-path-reports
    
                  container sts-minute15-path-thresholds {
                    description
                      "Configure threshold on Path parameters";
                    list sts-minute15-path-threshold {
                      key "path-threshold";
                      description "none";
                      leaf path-threshold {
                        type Sts-threshold;
                        description
                          "Path Threshold Type";
                      }
    
                      leaf path-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "Path Threshold Value";
                      }
                    }  // list sts-minute15-path-threshold
                  }  // container sts-minute15-path-thresholds
                }  // container sts-minute15-path
              }  // container sts-minute15
    
              container hour24 {
                description
                  "Configure pm parameters of 24 hour interval";
                container hour24otn {
                  description
                    "configure otn g709 performance monitoring";
                  container hour24otn-thresholds {
                    description
                      "Configure threshold on otn parameters";
                    list hour24otn-threshold {
                      key "otn-threshold";
                      description "none";
                      leaf otn-threshold {
                        type Otn-threshold;
                        description
                          "Otn Threshold Type";
                      }
    
                      leaf otn-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "Otn Threshold Value";
                      }
                    }  // list hour24otn-threshold
                  }  // container hour24otn-thresholds
    
                  container hour24otn-reports {
                    description
                      "set otn TCA reporting status";
                    list hour24otn-report {
                      key "otn-report";
                      description "none";
                      leaf otn-report {
                        type Otn-report;
                        description
                          "Otn Report Type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description "Otn Report";
                      }
                    }  // list hour24otn-report
                  }  // container hour24otn-reports
                }  // container hour24otn
    
                container hour24-optics {
                  description
                    "Configure optics performance monitoring";
                  container hour24-optics-thresholds {
                    description
                      "Configure threshold on optics parameters";
                    list hour24-optics-threshold {
                      key "optics-threshold";
                      description "none";
                      leaf optics-threshold {
                        type Optics-threshold;
                        description
                          "Optics Threshold Type";
                      }
    
                      leaf optics-threshold-value {
                        type int32;
                        description
                          "Optics Thresh Value";
                      }
    
                      leaf dbm {
                        type uint32;
                        mandatory true;
                        description
                          "Used only for Opt and Opr,To Enter
    Threshold in dbm use 1";
                      }
                    }  // list hour24-optics-threshold
                  }  // container hour24-optics-thresholds
    
                  container hour24-optics-reports {
                    description
                      "set optics TCA reporting status";
                    list hour24-optics-report {
                      key "optics-report";
                      description "none";
                      leaf optics-report {
                        type Optics-report;
                        description
                          "Optics Report Type";
                      }
                    }  // list hour24-optics-report
                  }  // container hour24-optics-reports
                }  // container hour24-optics
    
                container hour24pcs {
                  description
                    "Configure pcs performance monitoring";
                  container hour24pcs-thresholds {
                    description
                      "Configure pcs threshold";
                    list hour24pcs-threshold {
                      key "pcs-threshold";
                      description "none";
                      leaf pcs-threshold {
                        type Pcs-threshold;
                        description
                          "Pcs Threshold Type";
                      }
    
                      leaf pcs-threshold-value {
                        type string {
                          length "1..20";
                        }
                        mandatory true;
                        description
                          "Pcs Threshold Value";
                      }
                    }  // list hour24pcs-threshold
                  }  // container hour24pcs-thresholds
    
                  container hour24pcs-reports {
                    description
                      "set pcs TCA reporting status";
                    list hour24pcs-report {
                      key "pcs-report";
                      description "none";
                      leaf pcs-report {
                        type Pcs-report;
                        description
                          "Pcs Report Type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description "PCS Report";
                      }
                    }  // list hour24pcs-report
                  }  // container hour24pcs-reports
                }  // container hour24pcs
    
                container hour24fec {
                  description
                    "Configure fec g709 performance monitoring";
                  container hour24fec-thresholds {
                    description
                      "Configure fec threshold";
                    list hour24fec-threshold {
                      key "fec-threshold";
                      description "none";
                      leaf fec-threshold {
                        type Fec-threshold;
                        description
                          "Fec Threshold Type";
                      }
    
                      leaf fec-threshold-value {
                        type string {
                          length "1..20";
                        }
                        mandatory true;
                        description
                          "Fec threshold value";
                      }
                    }  // list hour24fec-threshold
                  }  // container hour24fec-thresholds
    
                  container hour24fec-reports {
                    description
                      "set fec TCA reporting status";
                    list hour24fec-report {
                      key "fec-report";
                      description "none";
                      leaf fec-report {
                        type Fec-report;
                        description
                          "Fec Report type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description "Fec Report";
                      }
                    }  // list hour24fec-report
                  }  // container hour24fec-reports
                }  // container hour24fec
    
                container hour24secyif {
                  description
                    "Configure secy-if performance monitoring";
                  container hour24secyif-reports {
                    description
                      "set secyif TCA reporting status";
                    list hour24secyif-report {
                      key "secyif-report";
                      description "none";
                      leaf secyif-report {
                        type Secyif-report;
                        description
                          "Secyif Report type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description
                          "Secyif Report";
                      }
                    }  // list hour24secyif-report
                  }  // container hour24secyif-reports
    
                  container hour24secyif-thresholds {
                    description
                      "Configure secyif threshold";
                    list hour24secyif-threshold {
                      key "secyif-threshold";
                      description "none";
                      leaf secyif-threshold {
                        type Secyif-threshold;
                        description
                          "Secyif Threshold Type";
                      }
    
                      leaf secyif-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "Secyif threshold value";
                      }
                    }  // list hour24secyif-threshold
                  }  // container hour24secyif-thresholds
                }  // container hour24secyif
    
                container hour24secyrx {
                  description
                    "Configure secy-rx performance monitoring";
                  container hour24secyrx-reports {
                    description
                      "set secyrx TCA reporting status";
                    list hour24secyrx-report {
                      key "secyrx-report";
                      description "none";
                      leaf secyrx-report {
                        type Secyrx-report;
                        description
                          "Secyrx Report type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description
                          "Secyrx Report";
                      }
                    }  // list hour24secyrx-report
                  }  // container hour24secyrx-reports
    
                  container hour24secyrx-thresholds {
                    description
                      "Configure secyrx threshold";
                    list hour24secyrx-threshold {
                      key "secyrx-threshold";
                      description "none";
                      leaf secyrx-threshold {
                        type Secyrx-threshold;
                        description
                          "Secyrx Threshold Type";
                      }
    
                      leaf secyrx-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "Secyrx threshold value";
                      }
                    }  // list hour24secyrx-threshold
                  }  // container hour24secyrx-thresholds
                }  // container hour24secyrx
    
                container hour24secytx {
                  description
                    "Configure secy-tx performance monitoring";
                  container hour24secytx-thresholds {
                    description
                      "Configure secytx threshold";
                    list hour24secytx-threshold {
                      key "secytx-threshold";
                      description "none";
                      leaf secytx-threshold {
                        type Secytx-threshold;
                        description
                          "Secytx Threshold Type";
                      }
    
                      leaf secytx-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "Secytx threshold value";
                      }
                    }  // list hour24secytx-threshold
                  }  // container hour24secytx-thresholds
    
                  container hour24secytx-reports {
                    description
                      "set secytx TCA reporting status";
                    list hour24secytx-report {
                      key "secytx-report";
                      description "none";
                      leaf secytx-report {
                        type Secytx-report;
                        description
                          "Secytx Report type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description
                          "Secytx Report";
                      }
                    }  // list hour24secytx-report
                  }  // container hour24secytx-reports
                }  // container hour24secytx
    
                container hour24prbs {
                  description
                    "Configure prbs performance monitoring data";
                  container hour24prbs-thresholds {
                    description
                      "Configure prbs threshold";
                    list hour24prbs-threshold {
                      key "prbs-threshold";
                      description "none";
                      leaf prbs-threshold {
                        type Prbs-threshold;
                        description
                          "Prbs Threshold Type";
                      }
    
                      leaf prbs-threshold-value {
                        type string {
                          length "1..20";
                        }
                        mandatory true;
                        description
                          "PRBS threshold value";
                      }
                    }  // list hour24prbs-threshold
                  }  // container hour24prbs-thresholds
    
                  container hour24prbs-reports {
                    description
                      "set prbs TCA reporting status";
                    list hour24prbs-report {
                      key "prbs-report";
                      description "none";
                      leaf prbs-report {
                        type Prbs-report;
                        description
                          "Prbs Report type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description
                          "Prbs Report";
                      }
                    }  // list hour24prbs-report
                  }  // container hour24prbs-reports
                }  // container hour24prbs
    
                container hour24otnsec {
                  description
                    "Configure otnsec performance monitoring";
                  container hour24otnsec-reports {
                    description
                      "set otnsec TCA reporting status";
                    list hour24otnsec-report {
                      key "otnsec-report";
                      description "none";
                      leaf otnsec-report {
                        type Otnsec-report;
                        description
                          "OTNSEC Report Type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description
                          "OTNSEC Report";
                      }
                    }  // list hour24otnsec-report
                  }  // container hour24otnsec-reports
    
                  container hour24otnsec-thresholds {
                    description
                      "Configure otnsec threshold";
                    list hour24otnsec-threshold {
                      key "otnsec-threshold";
                      description "none";
                      leaf otnsec-threshold {
                        type Otnsec-threshold;
                        description
                          "OTNSEC Threshold Type";
                      }
    
                      leaf otnsec-threshold-value {
                        type string {
                          length "1..20";
                        }
                        mandatory true;
                        description
                          "OTNSEC Threshold Value";
                      }
                    }  // list hour24otnsec-threshold
                  }  // container hour24otnsec-thresholds
                }  // container hour24otnsec
              }  // container hour24
    
              container ho-vc-minute15 {
                description
                  "set HO_VC threshold";
                container ho-vc-minute15ho-vc {
                  description
                    "Configure ho_vc performance monitoring";
                  container ho-vc-minute15ho-vc-reports {
                    description
                      "set ho_vc TCA reporting status";
                    list ho-vc-minute15ho-vc-report {
                      key "ho-vc-report";
                      description "none";
                      leaf ho-vc-report {
                        type Ho-vc-report;
                        description
                          "ho_vc Report Type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description
                          "ho_vc Report";
                      }
                    }  // list ho-vc-minute15ho-vc-report
                  }  // container ho-vc-minute15ho-vc-reports
    
                  container ho-vc-minute15ho-vc-thresholds {
                    description
                      "Configure threshold on ho_vc parameters";
                    list ho-vc-minute15ho-vc-threshold {
                      key "ho-vc-threshold";
                      description "none";
                      leaf ho-vc-threshold {
                        type Ho-vc-threshold;
                        description
                          "ho_vc Threshold Type";
                      }
    
                      leaf ho-vc-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "ho_vc Threshold Value";
                      }
                    }  // list ho-vc-minute15ho-vc-threshold
                  }  // container ho-vc-minute15ho-vc-thresholds
                }  // container ho-vc-minute15ho-vc
              }  // container ho-vc-minute15
    
              container sts-hour24 {
                description "set STS threshold";
                container sts-hour24-path {
                  description
                    "Configure Path performance monitoring";
                  container sts-hour24-path-thresholds {
                    description
                      "Configure threshold on Path parameters";
                    list sts-hour24-path-threshold {
                      key "path-threshold";
                      description "none";
                      leaf path-threshold {
                        type Sts-threshold;
                        description
                          "Path Threshold Type";
                      }
    
                      leaf path-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "Path Thresh Value";
                      }
                    }  // list sts-hour24-path-threshold
                  }  // container sts-hour24-path-thresholds
    
                  container sts-hour24-path-reports {
                    description
                      "set Path TCA reporting status";
                    list sts-hour24-path-report {
                      key "path-report";
                      description "none";
                      leaf path-report {
                        type Sts-report;
                        description
                          "Path Report Type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description
                          "Path Report";
                      }
                    }  // list sts-hour24-path-report
                  }  // container sts-hour24-path-reports
                }  // container sts-hour24-path
              }  // container sts-hour24
    
              container stm-minute15 {
                description "set STM threshold";
                container stm-minute15-stm {
                  description
                    "Configure stm performance monitoring";
                  container stm-minute15-stm-reports {
                    description
                      "set stm TCA reporting status";
                    list stm-minute15-stm-report {
                      key "stm-report";
                      description "none";
                      leaf stm-report {
                        type Stm-report;
                        description
                          "Stm Report Type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description "Stm Report";
                      }
                    }  // list stm-minute15-stm-report
                  }  // container stm-minute15-stm-reports
    
                  container stm-minute15-stm-thresholds {
                    description
                      "Configure threshold on stm parameters";
                    list stm-minute15-stm-threshold {
                      key "stm-threshold";
                      description "none";
                      leaf stm-threshold {
                        type Stm-threshold;
                        description
                          "Stm Threshold Type";
                      }
    
                      leaf stm-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "Stm Threshold Value";
                      }
                    }  // list stm-minute15-stm-threshold
                  }  // container stm-minute15-stm-thresholds
                }  // container stm-minute15-stm
              }  // container stm-minute15
    
              container sonet-hour24 {
                description
                  "set Sonet threshold";
                container sonet-hour24-path {
                  description
                    "Configure Path performance monitoring";
                  container sonet-hour24-path-thresholds {
                    description
                      "Configure threshold on Path parameters";
                    list sonet-hour24-path-threshold {
                      key "path-threshold";
                      description "none";
                      leaf path-threshold {
                        type Path-threshold;
                        description
                          "Path Threshold Type";
                      }
    
                      leaf path-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "Path Thresh Value";
                      }
                    }  // list sonet-hour24-path-threshold
                  }  // container sonet-hour24-path-thresholds
    
                  container sonet-hour24-path-reports {
                    description
                      "set Path TCA reporting status";
                    list sonet-hour24-path-report {
                      key "path-report";
                      description "none";
                      leaf path-report {
                        type Path-report;
                        description
                          "Path Report Type";
                      }
                    }  // list sonet-hour24-path-report
                  }  // container sonet-hour24-path-reports
                }  // container sonet-hour24-path
    
                container sonet-hour24-ocn {
                  description
                    "Configure ocn performance monitoring";
                  container sonet-hour24-ocn-thresholds {
                    description
                      "Configure threshold on ocn parameters";
                    list sonet-hour24-ocn-threshold {
                      key "ocn-threshold";
                      description "none";
                      leaf ocn-threshold {
                        type Ocn-threshold;
                        description
                          "Ocn Threshold Type";
                      }
    
                      leaf ocn-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "Ocn Thresh Value";
                      }
                    }  // list sonet-hour24-ocn-threshold
                  }  // container sonet-hour24-ocn-thresholds
    
                  container sonet-hour24-ocn-reports {
                    description
                      "set ocn TCA reporting status";
                    list sonet-hour24-ocn-report {
                      key "ocn-report";
                      description "none";
                      leaf ocn-report {
                        type Ocn-report;
                        description
                          "Ocn Report Type";
                      }
                    }  // list sonet-hour24-ocn-report
                  }  // container sonet-hour24-ocn-reports
                }  // container sonet-hour24-ocn
              }  // container sonet-hour24
    
              container minute15-path {
                description
                  "set opr min threshold";
                container minute15otn-path {
                  description
                    "configure otn g709 performance monitoring";
                  container minute15otn-path-reports {
                    description
                      "set otn TCA reporting status";
                    list minute15otn-path-report {
                      key "otn-report";
                      description "none";
                      leaf otn-report {
                        type Otn-report;
                        description
                          "Otn Report Type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description "Otn Report";
                      }
                    }  // list minute15otn-path-report
                  }  // container minute15otn-path-reports
    
                  container min15-otn-path-threshes {
                    description
                      "Configure threshold on otn parameters";
                    list min15-otn-path-thresh {
                      key "otn-threshold";
                      description "none";
                      leaf otn-threshold {
                        type Otn-threshold;
                        description
                          "Otn Threshold Type";
                      }
    
                      leaf otn-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "Otn Threshold Value";
                      }
                    }  // list min15-otn-path-thresh
                  }  // container min15-otn-path-threshes
                }  // container minute15otn-path
              }  // container minute15-path
    
              container oc-minute15 {
                description "set OC threshold";
                container oc-minute15-ocn {
                  description
                    "Configure ocn performance monitoring";
                  container oc-minute15-ocn-reports {
                    description
                      "set ocn TCA reporting status";
                    list oc-minute15-ocn-report {
                      key "ocn-report";
                      description "none";
                      leaf ocn-report {
                        type Ocn-report;
                        description
                          "Ocn Report Type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description "Ocn Report";
                      }
                    }  // list oc-minute15-ocn-report
                  }  // container oc-minute15-ocn-reports
    
                  container oc-minute15-ocn-thresholds {
                    description
                      "Configure threshold on ocn parameters";
                    list oc-minute15-ocn-threshold {
                      key "ocn-threshold";
                      description "none";
                      leaf ocn-threshold {
                        type Ocn-threshold;
                        description
                          "Ocn Threshold Type";
                      }
    
                      leaf ocn-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "Ocn Threshold Value";
                      }
                    }  // list oc-minute15-ocn-threshold
                  }  // container oc-minute15-ocn-thresholds
                }  // container oc-minute15-ocn
              }  // container oc-minute15
    
              container ethernet-second30 {
                description
                  "Configure ethernet performance monitoring for
    30 sec";
                container second30-ether {
                  description
                    "Configure ether performance monitoring";
                  container second30-ether-thresholds {
                    description
                      "Configure threshold on ether parameters";
                    list second30-ether-threshold {
                      key "ether-threshold";
                      description "none";
                      leaf ether-threshold {
                        type Ether-threshold;
                        description
                          "Ether Threshold Type";
                      }
    
                      leaf ether-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "Ether Threshold Value";
                      }
                    }  // list second30-ether-threshold
                  }  // container second30-ether-thresholds
    
                  container second30-ether-reports {
                    description
                      "set ether TCA reporting status";
                    list second30-ether-report {
                      key "ether-report";
                      description "none";
                      leaf ether-report {
                        type Ether-report;
                        description
                          "Ether Report Type";
                      }
                    }  // list second30-ether-report
                  }  // container second30-ether-reports
                }  // container second30-ether
              }  // container ethernet-second30
    
              container hour24-path {
                description
                  "Configure pm parameters of pathmonitor 24 hour
    interval";
                container hour24otn-path {
                  description
                    "configure otn g709 performance monitoring";
                  container hour24otn-path-reports {
                    description
                      "set otn TCA reporting status";
                    list hour24otn-path-report {
                      key "otn-report";
                      description "none";
                      leaf otn-report {
                        type Otn-report;
                        description
                          "Otn Report Type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description "Otn Report";
                      }
                    }  // list hour24otn-path-report
                  }  // container hour24otn-path-reports
    
                  container hour24otn-path-thresholds {
                    description
                      "Configure threshold on otn parameters";
                    list hour24otn-path-threshold {
                      key "otn-threshold";
                      description "none";
                      leaf otn-threshold {
                        type Otn-threshold;
                        description
                          "Otn Threshold Type";
                      }
    
                      leaf otn-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "Otn Threshold Value";
                      }
                    }  // list hour24otn-path-threshold
                  }  // container hour24otn-path-thresholds
                }  // container hour24otn-path
              }  // container hour24-path
    
              container minute15 {
                description
                  "set opr min threshold";
                container minute15-optics {
                  description
                    "Configure optics performance monitoring";
                  container minute15-optics-thresholds {
                    description
                      "Configure threshold on optics parameters";
                    list minute15-optics-threshold {
                      key "optics-threshold";
                      description "none";
                      leaf optics-threshold {
                        type Optics-threshold;
                        description
                          "Optics Threshold Type";
                      }
    
                      leaf optics-threshold-value {
                        type int32;
                        description
                          "Optics Threshold Value";
                      }
    
                      leaf dbm {
                        type uint32;
                        mandatory true;
                        description
                          "Used only for Opt and Opr,To Enter
    Threshold in dbm use 1";
                      }
                    }  // list minute15-optics-threshold
                  }  // container minute15-optics-thresholds
    
                  container minute15-optics-reports {
                    description
                      "set optics TCA reporting status";
                    list minute15-optics-report {
                      key "optics-report";
                      description "none";
                      leaf optics-report {
                        type Optics-report;
                        description
                          "Optics Report Type";
                      }
                    }  // list minute15-optics-report
                  }  // container minute15-optics-reports
                }  // container minute15-optics
    
                container minute15secyif {
                  description
                    "Configure secy-if performance monitoring";
                  container minute15secyif-reports {
                    description
                      "set secyif TCA reporting status";
                    list minute15secyif-report {
                      key "secyif-report";
                      description "none";
                      leaf secyif-report {
                        type Secyif-report;
                        description
                          "Secyif Report Type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description
                          "Enabled Secyif Report";
                      }
                    }  // list minute15secyif-report
                  }  // container minute15secyif-reports
    
                  container minute15secyif-thresholds {
                    description
                      "Configure threshold on secyif parameters";
                    list minute15secyif-threshold {
                      key "secyif-threshold";
                      description "none";
                      leaf secyif-threshold {
                        type Secyif-threshold;
                        description
                          "Secyif Threshold Type";
                      }
    
                      leaf secyif-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "Secyif Threshold Value";
                      }
                    }  // list minute15secyif-threshold
                  }  // container minute15secyif-thresholds
                }  // container minute15secyif
    
                container minute15secyrx {
                  description
                    "Configure secy-rx performance monitoring";
                  container minute15secyrx-reports {
                    description
                      "set secyrx TCA reporting status";
                    list minute15secyrx-report {
                      key "secyrx-report";
                      description "none";
                      leaf secyrx-report {
                        type Secyrx-report;
                        description
                          "Secyrx Report Type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description
                          "Enabled Secyrx Report";
                      }
                    }  // list minute15secyrx-report
                  }  // container minute15secyrx-reports
    
                  container minute15secyrx-thresholds {
                    description
                      "Configure threshold on secyrx parameters";
                    list minute15secyrx-threshold {
                      key "secyrx-threshold";
                      description "none";
                      leaf secyrx-threshold {
                        type Secyrx-threshold;
                        description
                          "Secyrx Threshold Type";
                      }
    
                      leaf secyrx-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "Secyrx Threshold Value";
                      }
                    }  // list minute15secyrx-threshold
                  }  // container minute15secyrx-thresholds
                }  // container minute15secyrx
    
                container minute15pcs {
                  description
                    "Configure pcs performance monitoring";
                  container minute15pcs-reports {
                    description
                      "set pcs TCA reporting status";
                    list minute15pcs-report {
                      key "pcs-report";
                      description "none";
                      leaf pcs-report {
                        type Pcs-report;
                        description
                          "Pcs Report Type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description "PCS Report";
                      }
                    }  // list minute15pcs-report
                  }  // container minute15pcs-reports
    
                  container minute15pcs-thresholds {
                    description
                      "Configure pcs threshold";
                    list minute15pcs-threshold {
                      key "pcs-threshold";
                      description "none";
                      leaf pcs-threshold {
                        type Pcs-threshold;
                        description
                          "Pcs Threshold Type";
                      }
    
                      leaf pcs-threshold-value {
                        type string {
                          length "1..20";
                        }
                        mandatory true;
                        description
                          "Pcs Threshold Value";
                      }
                    }  // list minute15pcs-threshold
                  }  // container minute15pcs-thresholds
                }  // container minute15pcs
    
                container minute15fec {
                  description
                    "Configure fec g709 performance monitoring";
                  container minute15fec-thresholds {
                    description
                      "Configure fec threshold";
                    list minute15fec-threshold {
                      key "fec-threshold";
                      description "none";
                      leaf fec-threshold {
                        type Fec-threshold;
                        description
                          "Fec Threshold Type";
                      }
    
                      leaf fec-threshold-value {
                        type string {
                          length "1..20";
                        }
                        mandatory true;
                        description
                          "Fec Threshold Value";
                      }
                    }  // list minute15fec-threshold
                  }  // container minute15fec-thresholds
    
                  container minute15fec-reports {
                    description
                      "set fec TCA reporting status";
                    list minute15fec-report {
                      key "fec-report";
                      description "none";
                      leaf fec-report {
                        type Fec-report;
                        description
                          "Fec Report Type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description "Fec Report";
                      }
                    }  // list minute15fec-report
                  }  // container minute15fec-reports
                }  // container minute15fec
    
                container minute15secytx {
                  description
                    "Configure secy-tx performance monitoring";
                  container minute15secytx-reports {
                    description
                      "set secytx TCA reporting status";
                    list minute15secytx-report {
                      key "secytx-report";
                      description "none";
                      leaf secytx-report {
                        type Secytx-report;
                        description
                          "Secytx Report Type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description
                          "Enabled Secytx Report";
                      }
                    }  // list minute15secytx-report
                  }  // container minute15secytx-reports
    
                  container minute15secytx-thresholds {
                    description
                      "Configure threshold on secytx parameters";
                    list minute15secytx-threshold {
                      key "secytx-threshold";
                      description "none";
                      leaf secytx-threshold {
                        type Secytx-threshold;
                        description
                          "Secytx Threshold Type";
                      }
    
                      leaf secytx-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "Secytx Threshold Value";
                      }
                    }  // list minute15secytx-threshold
                  }  // container minute15secytx-thresholds
                }  // container minute15secytx
    
                container minute15otnsec {
                  description
                    "Configure otnsec performance monitoring";
                  container minute15otnsec-thresholds {
                    description
                      "Configure otnsec threshold";
                    list minute15otnsec-threshold {
                      key "otnsec-threshold";
                      description "none";
                      leaf otnsec-threshold {
                        type Otnsec-threshold;
                        description
                          "OTNSEC Threshold Type";
                      }
    
                      leaf otnsec-threshold-value {
                        type string {
                          length "1..20";
                        }
                        mandatory true;
                        description
                          "OTNSEC Threshold Value";
                      }
                    }  // list minute15otnsec-threshold
                  }  // container minute15otnsec-thresholds
    
                  container minute15otnsec-reports {
                    description
                      "set otnsec TCA reporting status";
                    list minute15otnsec-report {
                      key "otnsec-report";
                      description "none";
                      leaf otnsec-report {
                        type Otnsec-report;
                        description
                          "OTNSEC Report Type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description
                          "OTNSEC Report";
                      }
                    }  // list minute15otnsec-report
                  }  // container minute15otnsec-reports
                }  // container minute15otnsec
    
                container minute15prbs {
                  description
                    "Configure prbs performance monitoring data";
                  container minute15prbs-reports {
                    description
                      "set prbs TCA reporting status";
                    list minute15prbs-report {
                      key "prbs-report";
                      description "none";
                      leaf prbs-report {
                        type Prbs-report;
                        description
                          "Prbs Report Type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description
                          "Prbs Report";
                      }
                    }  // list minute15prbs-report
                  }  // container minute15prbs-reports
    
                  container minute15prbs-thresholds {
                    description
                      "Configure prbs threshold";
                    list minute15prbs-threshold {
                      key "prbs-threshold";
                      description "none";
                      leaf prbs-threshold {
                        type Prbs-threshold;
                        description
                          "Prbs Threshold Type";
                      }
    
                      leaf prbs-threshold-value {
                        type string {
                          length "1..20";
                        }
                        mandatory true;
                        description
                          "Prbs Threshold Value";
                      }
                    }  // list minute15prbs-threshold
                  }  // container minute15prbs-thresholds
                }  // container minute15prbs
    
                container minute15otn {
                  description
                    "configure otn g709 performance monitoring";
                  container min15-otn-threshes {
                    description
                      "Configure threshold on otn parameters";
                    list min15-otn-thresh {
                      key "otn-threshold";
                      description "none";
                      leaf otn-threshold {
                        type Otn-threshold;
                        description
                          "Otn Threshold Type";
                      }
    
                      leaf otn-threshold-value {
                        type uint32;
                        mandatory true;
                        description
                          "Otn Threshold Value";
                      }
                    }  // list min15-otn-thresh
                  }  // container min15-otn-threshes
    
                  container minute15otn-reports {
                    description
                      "set otn TCA reporting status";
                    list minute15otn-report {
                      key "otn-report";
                      description "none";
                      leaf otn-report {
                        type Otn-report;
                        description
                          "Otn Report Type";
                      }
    
                      leaf enable {
                        type Report;
                        mandatory true;
                        description "Otn Report";
                      }
                    }  // list minute15otn-report
                  }  // container minute15otn-reports
                }  // container minute15otn
              }  // container minute15
            }  // container performance-management
    
            container ppp {
              description
                "Interface PPP configuration data";
              container fsm {
                description
                  "PPP FSM configuration data";
                leaf retry-timeout {
                  type uint32 {
                    range "1..10";
                  }
                  default "3";
                  description
                    "This specifies the maximum time to wait for a
    response during PPP negotiation";
                }
    
                leaf max-unacknowledged-term-requests {
                  type uint32 {
                    range "2..10";
                  }
                  default "2";
                  description
                    "This specifies the maximum number of
    Term-Requests";
                }
    
                leaf max-consecutive-conf-naks {
                  type uint32 {
                    range "2..10";
                  }
                  default "5";
                  description
                    "This specifies the maximum number of
    consecutive Conf-Naks";
                }
    
                leaf max-unacknowledged-conf-requests {
                  type uint32 {
                    range "4..20";
                  }
                  default "10";
                  description
                    "This specifies the maximum number of
    unacknowledged Conf-Requests";
                }
              }  // container fsm
            }  // container ppp
    
            container ppp {
              description
                "Interface PPP configuration data";
              container ipcpiw {
                description
                  "PPP IPCPIW configuration data";
                leaf proxy-address {
                  type inet:ipv4-address-no-zone;
                  description
                    "Specify an IP address to publish to peers
    through IPCPIW";
                }
              }  // container ipcpiw
            }  // container ppp
    
            container ssrp-session {
              description "SSRP Config";
              container group-id {
                description
                  "This specifies the SSRP group and session-id";
                leaf group {
                  type uint32 {
                    range "1..65535";
                  }
                  description "SSRP Group-ID";
                }
    
                leaf id {
                  type uint32 {
                    range "1..4294967295";
                  }
                  description "SSRP Session-ID";
                }
              }  // container group-id
            }  // container ssrp-session
    
            container dagrs {
              status deprecated;
              description
                "This model is deprecated and is replaced by
    Cisco-IOS-XR-um-arp-cfg.yang which will provide
    the compatible functionalities.  Direct-Attached
    Gateway Redundancy configuration";
              list dagr {
                key "ip-addr";
                description
                  "The DAGR entry being configured";
                container sub {
                  description
                    "DAGR Submode configuration";
                  container metric {
                    description
                      "Set Route Metric";
                    leaf metric-norm {
                      type uint32 {
                        range "0..256";
                      }
                      default "100";
                      description
                        "Normal Route Metric";
                    }
    
                    leaf metric-prio {
                      type uint32 {
                        range "0..256";
                      }
                      default "90";
                      description
                        "Priority Route Metric";
                    }
                  }  // container metric
    
                  container timers {
                    description
                      "Set Query Timers";
                    leaf query-time {
                      type uint32 {
                        range "1..10000";
                      }
                      default "1";
                      description
                        "Query Timeout";
                    }
    
                    leaf sby-time {
                      type uint32 {
                        range "1..10000";
                      }
                      default "20";
                      description
                        "Standby Query Timeout";
                    }
                  }  // container timers
    
                  container distance {
                    description
                      "Set Route Distance";
                    leaf dist-norm {
                      type uint32 {
                        range "0..256";
                      }
                      default "150";
                      description
                        "Normal Route Distance";
                    }
    
                    leaf dist-prio {
                      type uint32 {
                        range "0..256";
                      }
                      default "5";
                      description
                        "Priority Route Distance";
                    }
                  }  // container distance
    
                  leaf priority-timeout {
                    type uint32 {
                      range "1..10000";
                    }
                    default "20";
                    description
                      "Priority Timeout value";
                  }
                }  // container sub
    
                leaf enter {
                  type empty;
                  description
                    "DAGR Group Enter item";
                }
    
                leaf ip-addr {
                  type inet:ipv4-address-no-zone;
                  description
                    "DAGR Peer IPv4 address";
                }
              }  // list dagr
            }  // container dagrs
    
            container ipv4arp {
              status deprecated;
              description
                "This model is deprecated and is replaced by
    Cisco-IOS-XR-um-arp-cfg.yang which will provide
    the compatible functionalities.  Configure
    Address Resolution Protocol";
              leaf learning-local {
                type empty;
                description
                  "Enable the dynamic learning of ARP entries(for
    local subnet) on the interface";
              }
    
              leaf drop-adj-timeout {
                type uint32 {
                  range "900..7200";
                }
                units "second";
                default "3600";
                description
                  "Number of seconds for ARP drop adjacency
    timeout";
              }
    
              leaf learning-solicited {
                type empty;
                description
                  "ARP learning solicited configuration";
              }
    
              leaf gratuitous-ignore {
                type empty;
                description
                  "Ignore the receipt of Gratuitous ARP packets on
    the interface";
              }
    
              leaf proxy-arp {
                type empty;
                description
                  "Proxy ARP configuration";
              }
    
              leaf purge-delay {
                type uint32 {
                  range "1..65535";
                }
                description
                  "Time to delay purging arp entries when the
    interface goes down";
              }
    
              leaf learning-disable {
                type empty;
                description
                  "Disable the dynamic learning of ARP entries on
    the interface";
              }
    
              leaf local-proxy-arp {
                type empty;
                description
                  "Local Proxy ARP configuration";
              }
    
              leaf timeout {
                type uint32 {
                  range "30..2144448000";
                }
                units "second";
                description
                  "Number of seconds for ARP cache timeout";
              }
            }  // container ipv4arp
    
            leaf track-name {
              type dt1:Object-tracking-name-string;
              description "Track Name";
            }
    
            container flow-protocols {
              description
                "Interface netflow configuration";
              list flow-protocol {
                key "flow-protocol";
                description
                  "Configure netflow flow protocol";
                leaf flow-protocol {
                  type Nf-flow-protocol;
                  description
                    "Netflow Flow Protocol";
                }
    
                list direction {
                  key "flow-direction";
                  description
                    "Configure netflow flow direction";
                  leaf flow-direction {
                    type Nf-flow-direction;
                    description
                      "Netflow Flow Direction";
                  }
    
                  list monitor-info {
                    key "monitor-map sampler-map";
                    description
                      "Specify a sampler for a flow monitor";
                    leaf monitor-map {
                      type xr:Cisco-ios-xr-string;
                      description
                        "Flow monitor map name";
                    }
    
                    leaf sampler-map {
                      type xr:Cisco-ios-xr-string;
                      description
                        "Sampler map name";
                    }
                  }  // list monitor-info
                }  // list direction
              }  // list flow-protocol
            }  // container flow-protocols
    
            container pppoe {
              description
                "Interface PPPoE configuration data";
              container enable-bba-group {
                presence
                  "Indicates a enable-bba-group node is configured.";
                description
                  "Use this BBA-Group to enable PPPoE on this
    interface";
                leaf enable {
                  type boolean;
                  mandatory true;
                  description
                    "Enable PPPoE on this interface";
                }
    
                leaf bba-group-name {
                  type string;
                  description
                    "Name of the BBA-Group";
                }
              }  // container enable-bba-group
            }  // container pppoe
    
            container cem {
              presence
                "CLI submode compatibility.";
              description
                "Configure CEM interface";
              container clock {
                description
                  "Configure clock for this CEM interface";
                leaf recover-clock-type {
                  type Cem-recover-clock;
                  description
                    "Configure the Recover clock type";
                }
              }  // container clock
    
              container idle {
                description
                  "Configure idle pattern";
                leaf pattern {
                  type xr:Hex-integer;
                  description
                    "Idle pattern from 0x0 to 0xff";
                }
              }  // container idle
    
              container dummy {
                description
                  "Configure bit-pattern for filling in lost or
    corrupted frames";
                leaf pattern {
                  type xr:Hex-integer;
                  description
                    "User defined bit pattern from 0x0 to 0xff for
    CEM frame";
                }
    
                leaf mode {
                  type Cem-if-dummy-mode;
                  description "Configure mode";
                }
              }  // container dummy
    
              leaf payload {
                type uint32 {
                  range "32..500000";
                }
                description
                  "Payload size in bytes";
              }
    
              leaf class {
                type string {
                  length "1..80";
                }
                description
                  "Attach a CEM class to this interface";
              }
    
              leaf dejitter {
                type uint32 {
                  range "125..500000";
                }
                description
                  "Dejitter buffer size in microseconds";
              }
            }  // container cem
    
            container service-policies {
              description
                "Interface control subscriber policy
    configuration";
              list service-policy {
                key "service-policy-name";
                description
                  "Service policy to be applied to access
    interface  for subscribers";
                leaf service-policy-name {
                  type string {
                    length "1..63";
                  }
                  description
                    "Name of policy-map";
                }
              }  // list service-policy
            }  // container service-policies
    
            leaf speed {
              type Speed-mode-list;
              description
                "optics speed set configuration";
            }
    
            container port-mode {
              description
                "Portmode configuration";
              container lane-numbers {
                description
                  "Breakout Configuration";
                list lane-number {
                  key "lane-no";
                  description
                    "Lane number for breakout configuration";
                  leaf lane-no {
                    type uint32 {
                      range "1..10";
                    }
                    description "LANE NO";
                  }
    
                  leaf rate {
                    type Port-mode-rate;
                    description "PortMode rate";
                  }
    
                  leaf mapping {
                    type Port-mode-mapping;
                    description
                      "PortMode mapping types";
                  }
    
                  leaf framing {
                    type Port-mode-framing;
                    description
                      "PortMode framing types";
                  }
    
                  leaf type {
                    type Port-mode-types;
                    description "PortMode types";
                  }
                }  // list lane-number
              }  // container lane-numbers
    
              container info {
                description
                  "PortMode configuration";
                leaf rate {
                  type Port-mode-rate;
                  description "PortMode rate";
                }
    
                leaf mapping {
                  type Port-mode-mapping;
                  description
                    "PortMode mapping types";
                }
    
                leaf framing {
                  type Port-mode-framing;
                  description
                    "PortMode framing types";
                }
    
                leaf type {
                  type Port-mode-types;
                  description "PortMode types";
                }
              }  // container info
    
              container cpri-info {
                presence
                  "Indicates a cpri-info node is configured.";
                description
                  "CPRI PortMode configuration";
                leaf type {
                  type Port-mode-types;
                  description "PortMode types";
                }
    
                leaf cpri-role {
                  type Cpri-role;
                  mandatory true;
                  description "CPRI Role";
                }
    
                leaf-list cpri-rate {
                  type Cpri-data-rate;
                  max-elements 4;
                  description
                    "Array of CPRI line rates";
                }
              }  // container cpri-info
            }  // container port-mode
    
            container span-monitor-sessions {
              status deprecated;
              description
                "Monitor Session container for this source
    interface";
              list span-monitor-session {
                key "session-class";
                description
                  "Configuration for a particular class of Monitor
    Session";
                leaf session-class {
                  type dt1:Span-session-class;
                  description "Session Class";
                }
    
                leaf mirror-first {
                  type uint32 {
                    range "1..10000";
                  }
                  units "byte";
                  description
                    "Mirror a specified number of bytes from start of
    packet";
                }
    
                container attachment {
                  presence
                    "Indicates a attachment node is configured.";
                  description
                    "Attach the interface to a Monitor Session";
                  leaf session-name {
                    type dt1:Span-session-name;
                    mandatory true;
                    description "Session Name";
                  }
    
                  leaf direction {
                    type Span-traffic-direction;
                    description
                      "Specify the direction of traffic to replicate
    (optional)";
                  }
    
                  leaf port-level-enable {
                    type empty;
                    description
                      "Enable port level traffic mirroring";
                  }
                }  // container attachment
    
                leaf mirror-interval {
                  type Span-mirror-interval;
                  description
                    "Specify the mirror interval";
                }
    
                container acl {
                  presence
                    "Indicates a acl node is configured.";
                  description
                    "Enable ACL matching for traffic mirroring";
                  leaf acl-enable {
                    type empty;
                    mandatory true;
                    description "Enable ACL";
                  }
    
                  leaf acl-name {
                    type dt1:Span-acl-name;
                    description "ACL Name";
                  }
                }  // container acl
    
                leaf drops {
                  type boolean;
                  description
                    "Specify whether or not to mirror dropped packets";
                }
    
                container ipv4acl {
                  presence
                    "Indicates a ipv4acl node is configured.";
                  description
                    "Enable IPv4 ACL matching for traffic mirroring";
                  leaf acl-enable {
                    type empty;
                    mandatory true;
                    description "Enable ACL";
                  }
    
                  leaf acl-name {
                    type dt1:Span-acl-name;
                    description "ACL Name";
                  }
                }  // container ipv4acl
    
                container ipv6acl {
                  presence
                    "Indicates a ipv6acl node is configured.";
                  description
                    "Enable IPv6 ACL matching for traffic mirroring";
                  leaf acl-enable {
                    type empty;
                    mandatory true;
                    description "Enable ACL";
                  }
    
                  leaf acl-name {
                    type dt1:Span-acl-name;
                    description "ACL Name";
                  }
                }  // container ipv6acl
              }  // list span-monitor-session
            }  // container span-monitor-sessions
    
            container span-attachments {
              description
                "Monitor Session container for this source
    interface";
              list span-attachment {
                key "session-name";
                description
                  "Configuration for a particular Monitor Session";
                leaf session-name {
                  type dt1:Span-session-name;
                  description "Session Name";
                }
    
                leaf mirror-first {
                  type uint32 {
                    range "1..10000";
                  }
                  units "byte";
                  description
                    "Mirror a specified number of bytes from start of
    packet";
                }
    
                leaf mirror-interval {
                  type Span-mirror-interval;
                  description
                    "Specify the mirror interval";
                }
    
                container attachment-config {
                  presence
                    "Indicates a attachment-config node is configured.";
                  description
                    "Attach the interface to a Monitor Session";
                  leaf session-class {
                    type dt1:Span-session-class;
                    mandatory true;
                    description
                      "Traffic class for the session";
                  }
    
                  leaf direction {
                    type Span-traffic-direction;
                    description
                      "Specify the direction of traffic to replicate
    (optional)";
                  }
    
                  leaf port-level-enable {
                    type empty;
                    description
                      "Enable port level traffic mirroring";
                  }
                }  // container attachment-config
    
                container acl {
                  presence
                    "Indicates a acl node is configured.";
                  description
                    "Enable ACL matching for traffic mirroring";
                  leaf acl-enable {
                    type empty;
                    mandatory true;
                    description "Enable ACL";
                  }
    
                  leaf acl-name {
                    type dt1:Span-acl-name;
                    description "ACL Name";
                  }
                }  // container acl
    
                leaf drops {
                  type boolean;
                  description
                    "Specify whether or not to mirror dropped packets";
                }
    
                container ipv4acl {
                  presence
                    "Indicates a ipv4acl node is configured.";
                  description
                    "Enable IPv4 ACL matching for traffic mirroring";
                  leaf acl-enable {
                    type empty;
                    mandatory true;
                    description "Enable ACL";
                  }
    
                  leaf acl-name {
                    type dt1:Span-acl-name;
                    description "ACL Name";
                  }
                }  // container ipv4acl
    
                container ipv6acl {
                  presence
                    "Indicates a ipv6acl node is configured.";
                  description
                    "Enable IPv6 ACL matching for traffic mirroring";
                  leaf acl-enable {
                    type empty;
                    mandatory true;
                    description "Enable ACL";
                  }
    
                  leaf acl-name {
                    type dt1:Span-acl-name;
                    description "ACL Name";
                  }
                }  // container ipv6acl
              }  // list span-attachment
            }  // container span-attachments
    
            container aaa-table {
              description "AAA configuration";
              container radius {
                description
                  "AAA radius configuration";
                container attribute {
                  description
                    "AAA radius attribute";
                  leaf nas-port-type {
                    type Nas-port-value;
                    description
                      "AAA nas-port-type attribute";
                  }
    
                  leaf nas-identifier {
                    type string;
                    description
                      "AAA nas-identifier attribute";
                  }
                }  // container attribute
              }  // container radius
            }  // container aaa-table
    
            container bfd {
              status deprecated;
              description
                "This model is deprecated and is replaced by
    Cisco-IOS-XR-um-if-bundle-cfg.yang which will
    provide the compatible functionalities.  BFD
    over bundle members configuration";
              container address-family {
                description
                  "Configuration of BFDoBM for all address
    families";
                container ipv6 {
                  description
                    "Configuration of BFDoBM for IPv6 address
    family";
                  container ipv6-timers {
                    description
                      "Timers associated with BFDoBM";
                    leaf ipv6-nbor-unconfig-timer {
                      type uint32 {
                        range "60..3600";
                      }
                      description
                        "IPv6 Timer associated with aggressiveness on
    BFD session peer being unconfigured";
                    }
    
                    leaf ipv6-start-timer {
                      type uint32 {
                        range "60..3600";
                      }
                      description
                        "IPv6 Timer associated with aggressiveness on
    BFD session creation";
                    }
                  }  // container ipv6-timers
    
                  leaf ipv6-destination-address {
                    type string;
                    description
                      "IPv6 Destination address for BFD sessions
    created by bundlemgr";
                  }
    
                  leaf ipv6-detection-multiplier {
                    type uint32 {
                      range "2..50";
                    }
                    description
                      "IPv6 Detection multiplier for BFD sessions
    created by bundlemgr";
                  }
    
                  leaf ipv6-fast-detect {
                    type empty;
                    description
                      "Configure to enable BFD over bundle members";
                  }
    
                  leaf ipv6-interval {
                    type uint32 {
                      range "3..30000";
                    }
                    description
                      "IPV6 Hello interval for BFD sessions created
    by bundlemgr";
                  }
                }  // container ipv6
    
                container ipv4 {
                  description
                    "Configuration of BFDoBM for IPv4 address
    family";
                  container echo {
                    description
                      "Container for Echo min-multiplier";
                    leaf min-interval {
                      type uint32 {
                        range "15..2000";
                      }
                      description
                        "Configure echo min-interval for bundle
    interface";
                    }
                  }  // container echo
    
                  container timers {
                    description
                      "Timers associated with BFDoBM";
                    leaf nbor-unconfig-timer {
                      type uint32 {
                        range "60..3600";
                      }
                      description
                        "Timer associated with aggressiveness on BFD
    session peer being unconfigured";
                    }
    
                    leaf start-timer {
                      type uint32 {
                        range "60..3600";
                      }
                      description
                        "Timer associated with aggressiveness on BFD
    session creation";
                    }
                  }  // container timers
    
                  leaf interval {
                    type uint32 {
                      range "3..30000";
                    }
                    description
                      "Hello interval for BFD sessions created by
    bundlemgr";
                  }
    
                  leaf detection-multiplier {
                    type uint32 {
                      range "2..50";
                    }
                    description
                      "Detection multiplier for BFD sessions created
    by bundlemgr";
                  }
    
                  leaf destination-address {
                    type inet:ipv4-address-no-zone;
                    description
                      "Destination address for BFD sessions created
    by bundlemgr";
                  }
    
                  leaf fast-detect {
                    type empty;
                    description
                      "Configure to enable BFD over bundle members";
                  }
                }  // container ipv4
              }  // container address-family
    
              leaf mode {
                type Bfd-mode;
                default "no-cfg";
                description
                  "Configuration of BFDoBM mode [cisco|ietf]";
              }
            }  // container bfd
    
            container bundle {
              status deprecated;
              description
                "This model is deprecated and is replaced by
    Cisco-IOS-XR-um-if-bundle-cfg.yang which will
    provide the compatible functionalities.  Generic
    per-bundle configuration";
              container bundle-load-balancing {
                description
                  "Load-balance configuration";
                container hash-function {
                  presence
                    "Indicates a hash-function node is configured.";
                  description
                    "Enable loadbalancing on this Bundle / EFP";
                  leaf hash-type {
                    type Bundle-load-balance;
                    mandatory true;
                    description
                      "The specified hash function to use";
                  }
    
                  leaf hash-value {
                    type uint32 {
                      range "1..64";
                    }
                    mandatory true;
                    description
                      "The loadbalance hash value selected. For
    non-EFP Value methods, this value must be set
    to 1.";
                  }
                }  // container hash-function
    
                leaf localize-links {
                  type uint32 {
                    range "1..64";
                  }
                  description
                    "Set thresholds for forwarding bundle traffic
    within a rack";
                }
              }  // container bundle-load-balancing
    
              container minimum-active {
                description
                  "Minimum criteria for a bundle to be active";
                container bandwidth {
                  presence
                    "Indicates a bandwidth node is configured.";
                  description
                    "Bandwidth (in kbps) needed to bring up a
    bundle";
                  leaf min-bandwidth-range {
                    type Bundle-minimum-bandwidth-range;
                    mandatory true;
                    description
                      "Minimum Bandwidth Range";
                  }
    
                  leaf bandwidth {
                    type uint32 {
                      range "1..4294967295";
                    }
                    mandatory true;
                    description "Bandwidth";
                  }
                }  // container bandwidth
    
                leaf links {
                  type uint32 {
                    range "1..64";
                  }
                  default "1";
                  description
                    "Number of active links needed to bring up a
    bundle";
                }
              }  // container minimum-active
    
              container maximum-active {
                description
                  "Set a limit on the number of links that can be
    active";
                container links {
                  presence
                    "Indicates a links node is configured.";
                  description
                    "Maximum number of active links in a bundle";
                  leaf links {
                    type uint32 {
                      range "1..64";
                    }
                    mandatory true;
                    description
                      "Number of active links";
                  }
    
                  leaf max-active-links-mode {
                    type Bundle-maximum-active-links-mode;
                    description
                      "Maximum active links mode";
                  }
                }  // container links
              }  // container maximum-active
    
              leaf lacp-delay {
                type uint32 {
                  range "1000..15000";
                }
                description
                  "Set the lacp-delay timeout for members of this
    bundle";
              }
    
              leaf lacp-fallback {
                type uint32 {
                  range "1..120";
                }
                default "5";
                description
                  "Set the lacp-fallback timeout for this bundle";
              }
    
              leaf logging-oos {
                type empty;
                description
                  "Enable logging messages for OOS membership
    status for bundle members";
              }
    
              leaf shutdown {
                type empty;
                description
                  "Deactivate all member links (down to Standby
    state)";
              }
    
              leaf wait-while {
                type uint32 {
                  range "0..2000";
                }
                default "2000";
                description
                  "Set the wait-while timeout for members of this
    bundle";
              }
            }  // container bundle
    
            container lacp {
              status deprecated;
              description
                "This model is deprecated and is replaced by
    Cisco-IOS-XR-um-if-bundle-cfg.yang which will
    provide the compatible functionalities.  Link
    Aggregation Control Protocol per-interface
    configuration (for bundle or member)";
              container cisco-extensions {
                presence
                  "Indicates a cisco-extensions node is configured.";
                description
                  "Enable bundle Cisco extensions";
                leaf cisco-ext {
                  type Bundle-cisco-ext;
                  mandatory true;
                  description "Cisco extensions";
                }
    
                leaf cisco-ext-type {
                  type Bundle-cisco-ext-types;
                  description
                    "Specific Cisco extension to enable / disable";
                }
              }  // container cisco-extensions
    
              container timeout {
                description
                  "Set timeout values for LACP-related timers";
                leaf rx-default {
                  type uint32 {
                    range "0..3000";
                  }
                  description
                    "Set the timeout between expired and defaulted
    states";
                }
    
                leaf actor-churn {
                  type uint32 {
                    range "0..120";
                  }
                  description
                    "The time in milliseconds for which to run the
    timer";
                }
    
                leaf partner-churn {
                  type uint32 {
                    range "0..120";
                  }
                  description
                    "Set the timeout to use before declaring
    partner churn";
                }
              }  // container timeout
    
              leaf system-priority {
                type uint32 {
                  range "1..65535";
                }
                description
                  "System priority for this bundle. Lower value is
    higher priority.";
              }
    
              leaf period {
                type Bundle-period;
                description
                  "Lacp period for the bundle.";
              }
    
              leaf collector-max-delay {
                type uint32 {
                  range "0..65535";
                }
                description
                  "Collector Max Delay value to signal to the LACP
    partner";
              }
    
              leaf lacp-nonrevertive {
                type empty;
                description
                  "Configure to enable lacp non-revertive mode";
              }
    
              leaf mode {
                type Bundle-mode;
                description
                  "Lacp mode for the bundle.";
              }
    
              leaf suppress-flaps {
                type uint32 {
                  range "100..65535";
                }
                description
                  "Suppress flaps on switchover for the specified
    period (in ms)";
              }
    
              leaf system-mac {
                type yang:mac-address;
                description
                  "System identifier for this bundle.";
              }
    
              leaf period-short {
                type Period-short-enum;
                units "millisecond";
                description
                  "LACP period to request from the partner (LACP
    standard short period, or rate in milliseconds
    for use with Cisco-specific extensions).
    Default is LACP standard long period (30s).";
              }
    
              leaf churn-logging {
                type Churn-logging;
                description
                  "Log churn notifications on the specified
    system(s)";
              }
            }  // container lacp
    
            container bundle-member {
              status deprecated;
              description
                "This model is deprecated and is replaced by
    Cisco-IOS-XR-um-if-bundle-cfg.yang which will
    provide the compatible functionalities.  Generic
    per-member configuration";
              container id {
                description
                  "Add the port to an aggregated interface.";
                leaf bundle-id {
                  type uint32 {
                    range "1..65535";
                  }
                  description
                    "Identifier of the bundle to add the port to.";
                }
    
                leaf port-activity {
                  type Bundle-port-activity;
                  description "Port Activity";
                }
              }  // container id
    
              leaf port-priority {
                type xr:Cisco-ios-xr-port-number;
                default "32768";
                description
                  "Priority for this port. Lower value is higher
    priority.";
              }
            }  // container bundle-member
    
            container mlacp {
              status deprecated;
              description
                "This model is deprecated and is replaced by
    Cisco-IOS-XR-um-if-bundle-cfg.yang which will
    provide the compatible functionalities.
    Multi-chassis LACP configuration";
              container maximize {
                presence
                  "Indicates a maximize node is configured.";
                description
                  "Set parameters to maximize between the mLACP
    peers";
                leaf maximize-by {
                  type Mlacp-maximize-parameter;
                  mandatory true;
                  description
                    "The paramenter which should be maximized";
                }
    
                leaf link-threshold {
                  type uint32 {
                    range "0..64";
                  }
                  description
                    "The number of links below which to switch to
    the peer if it has more links available. Only
    applicable if maximizing by links. If 0, no
    threshold is applied.";
                }
    
                leaf bandwidth-threshold {
                  type uint64 {
                    range
                      "0..18446744073709551615";
                  }
                  description
                    "The bandwidth (in kbps) below which to switch
    to the peer if it has more bandwidth available
    . Only applicable if maximizing by bandwidth.
    If 0, no threshold is applied.";
                }
              }  // container maximize
    
              leaf port-priority {
                type xr:Cisco-ios-xr-port-number;
                default "32768";
                description
                  "The LACP port priority (lower value is higher
    priority)";
              }
    
              leaf recovery-delay {
                type uint32 {
                  range "0..65535";
                }
                default "300";
                description
                  "Set the delay before the bundle becomes active
    after recovery from failure";
              }
    
              leaf switchover-type {
                type Mlacp-switchover;
                description
                  "Set the type of mLACP switchover to use for
    this bundle";
              }
    
              leaf iccp-group {
                type uint32 {
                  range "1..4294967295";
                }
                description
                  "Specify an ICCP Group in which this bundle
    should operate";
              }
            }  // container mlacp
    
            container dot1x-interface {
              description
                "Interface Specific Dot1x Configuration";
              leaf dot1x-profile {
                type xr:Cisco-ios-xr-string {
                  length "1..63";
                }
                description
                  "Name of Dot1x profile";
              }
            }  // container dot1x-interface
          }  // list interface-configuration
        }  // container interface-configurations
      }  // module Cisco-IOS-XR-ifmgr-cfg
    

© 2024 YumaWorks, Inc. All rights reserved.