Cisco-IOS-XR-um-interface-cfg

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

  • Version: 2021-05-04

    Cisco-IOS-XR-um-interface-cfg@2021-05-04


    
      module Cisco-IOS-XR-um-interface-cfg {
    
        yang-version 1;
    
        namespace
          "http://cisco.com/ns/yang/Cisco-IOS-XR-um-interface-cfg";
    
        prefix um-interface-cfg;
    
        import cisco-semver {
          prefix semver;
        }
        import Cisco-IOS-XR-types {
          prefix xr;
        }
        import tailf-common {
          prefix tailf;
        }
    
        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 interface package configuration.
    
    This YANG module augments the
    modules with configuration data.
    
    Copyright (c) 2019-2021 by Cisco Systems, Inc.
    All rights reserved.";
    
        revision "2021-05-04" {
          description
            "Added sec-admin-state node under controller
    2021-02-02
      Updated when statement interface patterns
    2020-12-15
      Changed type of bandwidth from uint32 to uint64
    2020-10-07
      Added logging/events/link-status container
    2020-05-04
      Added controller/controller-preconfigure under interfaces
    container.";
        }
    
        revision "2019-06-10" {
          description
            "Establish semantic version baseline.";
        }
    
        revision "2019-03-29" {
          description "Initial version";
        }
    
        semver:module-version "2.0.0";
        semver:module-version "1.0.1";
    
        grouping GROUP-BODY {
          container sub-interface-type {
            description
              "Specify type of sub-interface";
            container l2transport {
              presence
                "Indicates a l2transport node is configured.";
              description
                "l2transport sub-interface";
            }  // container l2transport
    
            container point-to-point {
              presence
                "Indicates a point-to-point node is configured.";
              description
                "point-to-point sub-interface";
            }  // container point-to-point
    
            container multipoint {
              presence
                "Indicates a multipoint node is configured.";
              description
                "multipoint sub-interface";
            }  // container multipoint
          }  // container sub-interface-type
    
          container ipv4 {
            description
              "Interface IPv4 config commands";
          }  // container ipv4
    
          container ipv6 {
            description
              "Interface IPv6 config commands";
          }  // container ipv6
    
          container dampening {
            tailf:dependency "../interface-name";
            when
              "../interface-name[not(starts-with(text(),'SBC'))] and ../interface-name[not(starts-with(text(),'tunnel-te'))] and ../interface-name[not(starts-with(text(),'tunnel-mte'))] and ../interface-name[not(starts-with(text(),'tunnel-gre'))] and ../interface-name[not(starts-with(text(),'tunnel-ip'))] and ../interface-name[not(starts-with(text(),'VASILeft'))] and ../interface-name[not(starts-with(text(),'VASIRight'))] and ../interface-name[not(starts-with(text(),'service-gre'))] and ../interface-name[not(starts-with(text(),'service-ipsec'))] and ../interface-name[not(starts-with(text(),'InterflexLeft'))] and ../interface-name[not(starts-with(text(),'InterflexRight'))] and ../interface-name[not(starts-with(text(),'CEM'))]";
            presence
              "Indicates a dampening node is configured.";
            description
              "configure state dampening on the given interface";
            container decay-half-life {
              presence
                "Indicates a decay-half-life node is configured.";
              description
                "Decay half life (in minutes)";
              leaf value {
                type uint32 {
                  range "1..45";
                }
                mandatory true;
                description
                  "Decay half life (in minutes)";
              }
    
              container reuse-threshold {
                must "suppress-threshold";
                presence
                  "Indicates a reuse-threshold node is configured.";
                description "Reuse threshold";
                leaf value {
                  type uint32 {
                    range "1..20000";
                  }
                  mandatory true;
                  description "Reuse threshold";
                }
    
                container suppress-threshold {
                  must "max-suppress-time";
                  presence
                    "Indicates a suppress-threshold node is configured.";
                  description
                    "Suppress threshold";
                  leaf value {
                    type uint32 {
                      range "1..20000";
                    }
                    mandatory true;
                    description
                      "Suppress threshold";
                  }
    
                  container max-suppress-time {
                    presence
                      "Indicates a max-suppress-time node is configured.";
                    description
                      "Max suppress time (in minutes)";
                    leaf value {
                      type uint32 {
                        range "1..255";
                      }
                      mandatory true;
                      description
                        "Max suppress time (in minutes)";
                    }
    
                    container restart-penalty {
                      tailf:dependency "../../../../../../interface-name";
                      when
                        "../../../../../../interface-name[not(starts-with(text(),'BVI'))] and ../../../../../../interface-name[not(starts-with(text(),'PW-Ether'))] and ../../../../../../interface-name[not(starts-with(text(),'PW-IW'))] and ../../../../../../interface-name[not(starts-with(text(),'Bundle-Ether'))] and ../../../../../../interface-name[not(starts-with(text(),'Bundle-POS'))] and ../../../../../../interface-name[not(starts-with(text(),'CSI-Ether'))] and ../../../../../../interface-name[not(starts-with(text(),'CSI'))] and ../../../../../../interface-name[not(starts-with(text(),'SFI'))] and ../../../../../../interface-name[not(starts-with(text(),'nve'))] and ../../../../../../interface-name[not(starts-with(text(),'Odu-Group-Mp'))] and ../../../../../../interface-name[not(starts-with(text(),'Odu-Group-Te'))] and ../../../../../../interface-name[not(starts-with(text(),'Loopback'))]";
                      presence
                        "Indicates a restart-penalty node is configured.";
                      description
                        "Restart penalty";
                      leaf value {
                        type uint32 {
                          range "0..20000";
                        }
                        mandatory true;
                        description
                          "Restart penalty";
                      }
                    }  // container restart-penalty
                  }  // container max-suppress-time
                }  // container suppress-threshold
              }  // container reuse-threshold
            }  // container decay-half-life
          }  // container dampening
    
          container encapsulation {
            tailf:dependency "../interface-name";
            when
              "../interface-name[starts-with(text(),'POS')] or ../interface-name[starts-with(text(),'serial')] or ../interface-name[starts-with(text(),'multilink')]";
            description
              "Set the encapsulation on an interface";
            container ppp {
              presence
                "Indicates a ppp node is configured.";
              description
                "Point-to-Point protocol";
            }  // container ppp
    
            container hdlc {
              presence
                "Indicates a hdlc node is configured.";
              description
                "Serial HDLC synchronous";
            }  // container hdlc
    
            container mfr {
              tailf:dependency "../../interface-name";
              when
                "../../interface-name[starts-with(text(),'serial')]";
              presence
                "Indicates a mfr node is configured.";
              description
                "Multilink Frame Relay Member Link";
            }  // container mfr
    
            container frame-relay {
              tailf:dependency "../../interface-name";
              when
                "../../interface-name[not(contains(text(),'.'))]";
              presence
                "Indicates a frame-relay node is configured.";
              description "Frame Relay networks";
              container IETF {
                presence
                  "Indicates a IETF node is configured.";
                description
                  "Use RFC1490/RFC2427 encapsulation";
              }  // container IETF
            }  // container frame-relay
          }  // container encapsulation
    
          container shutdown {
            presence
              "Indicates a shutdown node is configured.";
            description
              "shutdown the given interface";
          }  // container shutdown
    
          leaf mtu {
            tailf:dependency "../interface-name";
            when
              "../interface-name[not(starts-with(text(),'SBC'))] and ../interface-name[not(starts-with(text(),'tunnel-te'))] and ../interface-name[not(starts-with(text(),'tunnel-mte'))] and ../interface-name[not(starts-with(text(),'VASILeft'))] and ../interface-name[not(starts-with(text(),'VASIRight'))] and ../interface-name[not(starts-with(text(),'service-gre'))] and ../interface-name[not(starts-with(text(),'service-ipsec'))] and ../interface-name[not(starts-with(text(),'InterflexLeft'))] and ../interface-name[not(starts-with(text(),'InterflexRight'))] and ../interface-name[not(starts-with(text(),'CEM'))]";
            type uint32 {
              range "64..65535";
            }
            description
              "Set the MTU on an interface";
          }
    
          container logging {
            tailf:dependency "../interface-name";
            when
              "../interface-name[starts-with(text(),'Loopback')] or ../interface-name[starts-with(text(),'Bundle-Ether')] or ../interface-name[starts-with(text(),'Bundle-POS')] or ../interface-name[starts-with(text(),'tunnel')] or ../interface-name[starts-with(text(),'service')] or ../interface-name[starts-with(text(),'Service')] or ../interface-name[starts-with(text(),'VASILeft')] or ../interface-name[starts-with(text(),'VASIRight')] or ../interface-name[starts-with(text(),'FirewallManagement')] or ../interface-name[starts-with(text(),'SBC')] or ../interface-name[starts-with(text(),'InterflexLeft')] or ../interface-name[starts-with(text(),'InterflexRight')] or ../interface-name[starts-with(text(),'BVI')] or ../interface-name[starts-with(text(),'PW-Ether')] or ../interface-name[starts-with(text(),'PW-IW')] or ../interface-name[starts-with(text(),'Odu-Group-Mp')] or ../interface-name[starts-with(text(),'Odu-Group-Te')] or ../interface-name[starts-with(text(),'nve')] or ../interface-name[starts-with(text(),'CSI')] or ../interface-name[starts-with(text(),'SFI')] or ../interface-name[contains(text(),'.')]";
            description
              "Per-interface logging configuration";
            container events {
              description
                "Per-interface logging events";
              container link-status {
                presence
                  "Indicates a link-status node is configured.";
                description
                  "Enable interface and line-protocol state change alarms";
              }  // container link-status
            }  // container events
          }  // container logging
    
          leaf bandwidth {
            tailf:dependency "../interface-name";
            when
              "../interface-name[not(starts-with(text(),'SBC'))] and ../interface-name[not(starts-with(text(),'FirewallManagement'))] and ../interface-name[not(starts-with(text(),'VASILeft'))] and ../interface-name[not(starts-with(text(),'VASIRight'))] and ../interface-name[not(starts-with(text(),'service-gre'))] and ../interface-name[not(starts-with(text(),'service-ipsec'))] and ../interface-name[not(starts-with(text(),'InterflexLeft'))] and ../interface-name[not(starts-with(text(),'InterflexRight'))] and ../interface-name[not(starts-with(text(),'CEM'))]";
            type uint64 {
              range "0..18446744073709551615";
            }
            description
              "Set the bandwidth of an interface";
          }
    
          leaf description {
            type string {
              length "1..1024";
            }
            description
              "Set description for this interface";
          }
        }  // grouping GROUP-BODY
    
        grouping CONT-BODY {
          container shutdown {
            tailf:dependency "../controller-name";
            when
              "../controller-name[not(starts-with(text(),'MACSecCtrlr'))] and ../controller-name[not(starts-with(text(),'Odu-Group-'))] and ../controller-name[not(starts-with(text(),'dwdm'))]";
            presence
              "Indicates a shutdown node is configured.";
            description
              "shutdown the given controller";
          }  // container shutdown
    
          leaf description {
            tailf:dependency "../controller-name";
            when
              "../controller-name[not(starts-with(text(),'CPRI'))] and ../controller-name[not(starts-with(text(),'MACSecCtrlr'))] and ../controller-name[not(starts-with(text(),'Odu-Group-'))] and ../controller-name[not(starts-with(text(),'STM'))] and ../controller-name[not(starts-with(text(),'STS'))] and ../controller-name[not(starts-with(text(),'VC'))] and ../controller-name[not(starts-with(text(),'dwdm'))]";
            type string {
              length "1..1024";
            }
            description
              "Set description for this controller";
          }
    
          leaf sec-admin-state {
            tailf:dependency "../controller-name";
            when
              "../controller-name[not(starts-with(text(),'MACSecCtrlr'))] and ../controller-name[not(starts-with(text(),'Odu-Group-'))] and ../controller-name[not(starts-with(text(),'E1'))] and ../controller-name[not(starts-with(text(),'E3'))] and ../controller-name[not(starts-with(text(),'T1'))] and ../controller-name[not(starts-with(text(),'T3'))] and ../controller-name[not(starts-with(text(),'SONET'))] and ../controller-name[not(starts-with(text(),'ODU'))] and ../controller-name[not(starts-with(text(),'OTU'))] and ../controller-name[not(starts-with(text(),'dwdm'))]";
            type enumeration {
              enum "normal" {
                value 0;
                description
                  "change the sec-admin-state to normal, only for optics";
              }
              enum "maintenance" {
                value 1;
                description
                  "change the sec-admin-state to maintenance";
              }
            }
            description
              "Configure the secondary admin state, not available for all controllers";
          }
        }  // grouping CONT-BODY
    
        container interfaces {
          description "Interface configuration";
          list interface {
            key "interface-name";
            description
              "Interface configuration subcommands";
            leaf interface-name {
              type xr:Interface-name;
              description
                "Interface configuration subcommands";
            }
    
            uses GROUP-BODY;
          }  // list interface
    
          list interface-preconfigure {
            key "interface-name";
            description
              "Specify a preconfig interface";
            leaf interface-name {
              type xr:Interface-name;
              description
                "Interface configuration subcommands";
            }
    
            uses GROUP-BODY;
          }  // list interface-preconfigure
    
          list controller {
            key "controller-name";
            description
              "Controller configuration subcommands";
            leaf controller-name {
              type xr:Controller-name;
              description "Controller name";
            }
    
            uses CONT-BODY;
          }  // list controller
    
          list controller-preconfigure {
            key "controller-name";
            description
              "Specify a preconfig controller";
            leaf controller-name {
              type xr:Controller-name;
              description "Controller name";
            }
    
            uses CONT-BODY;
          }  // list controller-preconfigure
        }  // container interfaces
    
        container logging {
          description
            "Modify message logging facilities";
          container events {
            description
              "Configure event monitoring parameters";
            container link-status {
              description
                "Enable or disable UP/DOWN state notifications for all interfaces";
              container disable {
                must
                  "not(../software-interfaces)";
                presence
                  "Indicates a disable node is configured.";
                description
                  "Disable state UP/DOWN notifications for all interfaces";
              }  // container disable
    
              container software-interfaces {
                must "not(../disable)";
                presence
                  "Indicates a software-interfaces node is configured.";
                description
                  "Enable state UP/DOWN notification for software interfaces";
              }  // container software-interfaces
            }  // container link-status
          }  // container events
        }  // container logging
      }  // module Cisco-IOS-XR-um-interface-cfg
    

© 2023 YumaWorks, Inc. All rights reserved.