Cisco-IOS-XR-um-if-ethernet-cfg

This module contains a collection of YANG definitions for Cisco IOS-XR if-ethernet package configuration. This YANG module augm...

  • Version: 2019-12-12

    Cisco-IOS-XR-um-if-ethernet-cfg@2019-12-12


    
      module Cisco-IOS-XR-um-if-ethernet-cfg {
    
        yang-version 1;
    
        namespace
          "http://cisco.com/ns/yang/Cisco-IOS-XR-um-if-ethernet-cfg";
    
        prefix um-if-ethernet-cfg;
    
        import cisco-semver {
          prefix semver;
        }
        import Cisco-IOS-XR-um-interface-cfg {
          prefix a1;
        }
        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 if-ethernet package configuration.
         
         This YANG module augments the
         modules with configuration data.
         
         Copyright (c) 2019-2020 by Cisco Systems, Inc.
         All rights reserved.";
    
        revision "2019-12-12" {
          description
            "Made changes for priority-flow-control and added frame preemption";
        }
    
        revision "2019-06-10" {
          description
            "Establish semantic version baseline.";
        }
    
        revision "2019-03-30" {
          description "Initial version";
        }
    
        semver:module-version "2.0.0";
        semver:module-version "1.0.0";
    
        grouping GROUP-BODY {
          container threshold {
            tailf:dependency "../a1:interface-name";
            when
              "../a1:interface-name[starts-with(text(),'TenGigE')] or ../a1:interface-name[starts-with(text(),'FortyGigE')] or ../a1:interface-name[starts-with(text(),'HundredGigE')] or ../a1:interface-name[starts-with(text(),'TwoHundredGigE')] or ../a1:interface-name[starts-with(text(),'FourHundredGigE')] or ../a1:interface-name[starts-with(text(),'TwentyFiveGigE')] or ../a1:interface-name[starts-with(text(),'FiftyGigE')]";
            description
              "Commands to set the threshold for the appropriate Bit Error Rate";
            leaf sd-ber {
              type uint32 {
                range "3..15";
              }
              description
                "Set the Signal Degrade Bit Error Rate threshold";
            }
    
            leaf sf-ber {
              type uint32 {
                range "4..15";
              }
              description
                "Set the Signal Fail Bit Error Rate threshold";
            }
          }  // container threshold
    
          container report {
            tailf:dependency "../a1:interface-name";
            when
              "../a1:interface-name[starts-with(text(),'TenGigE')] or ../a1:interface-name[starts-with(text(),'FortyGigE')] or ../a1:interface-name[starts-with(text(),'HundredGigE')] or ../a1:interface-name[starts-with(text(),'TwoHundredGigE')] or ../a1:interface-name[starts-with(text(),'FourHundredGigE')] or ../a1:interface-name[starts-with(text(),'TwentyFiveGigE')] or ../a1:interface-name[starts-with(text(),'FiftyGigE')]";
            description
              "Commands to control interface alarm reporting";
            container sd-ber {
              presence
                "Indicates a sd-ber node is configured.";
              description
                "Enable Signal Degrade alarm reporting";
            }  // container sd-ber
    
            container sf-ber {
              description
                "Commands to control Signal Fail alarm reporting";
              container disable {
                presence
                  "Indicates a disable node is configured.";
                description
                  "Disable Signal Fail alarm reporting";
              }  // container disable
            }  // container sf-ber
    
            container crc-ber {
              presence
                "Indicates a crc-ber node is configured.";
              description
                "Enable CRC based ber monitoring";
            }  // container crc-ber
          }  // container report
    
          container signal {
            tailf:dependency "../a1:interface-name";
            when
              "../a1:interface-name[starts-with(text(),'TenGigE')] or ../a1:interface-name[starts-with(text(),'FortyGigE')] or ../a1:interface-name[starts-with(text(),'HundredGigE')] or ../a1:interface-name[starts-with(text(),'TwoHundredGigE')] or ../a1:interface-name[starts-with(text(),'FourHundredGigE')] or ../a1:interface-name[starts-with(text(),'TwentyFiveGigE')] or ../a1:interface-name[starts-with(text(),'FiftyGigE')]";
            description
              "Bit Error Rate handling signalling commands";
            container sf-ber {
              description
                "Signal Fail Bit Error Rate signalling commands";
              container remote-fault {
                presence
                  "Indicates a remote-fault node is configured.";
                description
                  "Enable Signal Fail remote fault signalling";
              }  // container remote-fault
            }  // container sf-ber
          }  // container signal
    
          container carrier-delay {
            tailf:dependency "../a1:interface-name";
            when
              "../a1:interface-name[starts-with(text(),'FastEthernet')] or ../a1:interface-name[starts-with(text(),'GigabitEthernet')] or ../a1:interface-name[starts-with(text(),'TenGigE')] or ../a1:interface-name[starts-with(text(),'FortyGigE')] or ../a1:interface-name[starts-with(text(),'HundredGigE')] or ../a1:interface-name[starts-with(text(),'TwoHundredGigE')] or ../a1:interface-name[starts-with(text(),'FourHundredGigE')] or ../a1:interface-name[starts-with(text(),'TwentyFiveGigE')] or ../a1:interface-name[starts-with(text(),'FiftyGigE')]";
            description
              "Set the carrier delay on an interface";
            leaf up {
              type uint32 {
                range "0..2147483647";
              }
              description
                "Set the carrier delay up value";
            }
    
            leaf down {
              type uint32 {
                range "0..2147483647";
              }
              description
                "Set the carrier delay down value";
            }
          }  // container carrier-delay
    
          leaf duplex {
            tailf:dependency "../a1:interface-name";
            when
              "../a1:interface-name[starts-with(text(),'GigabitEthernet')] or ../a1:interface-name[starts-with(text(),'TenGigE')] or ../a1:interface-name[starts-with(text(),'FortyGigE')] or ../a1:interface-name[starts-with(text(),'HundredGigE')] or ../a1:interface-name[starts-with(text(),'TwoHundredGigE')] or ../a1:interface-name[starts-with(text(),'FourHundredGigE')] or ../a1:interface-name[starts-with(text(),'TwentyFiveGigE')] or ../a1:interface-name[starts-with(text(),'FiftyGigE')]";
            type enumeration {
              enum "full" {
                value 0;
                description "Full duplex";
              }
              enum "half" {
                value 1;
                description "Half duplex";
              }
            }
            description
              "Configure duplex operational mode";
          }
    
          leaf fec {
            tailf:dependency "../a1:interface-name";
            when
              "../a1:interface-name[starts-with(text(),'HundredGigE')] or ../a1:interface-name[starts-with(text(),'TwoHundredGigE')] or ../a1:interface-name[starts-with(text(),'FourHundredGigE')] or ../a1:interface-name[starts-with(text(),'TwentyFiveGigE')] or ../a1:interface-name[starts-with(text(),'FiftyGigE')]";
            type enumeration {
              enum "none" {
                value 0;
                description
                  "Disable any FEC enabled on the interface";
              }
              enum "standard" {
                value 1;
                description
                  "Enable the standard (CL-91, Reed-Solomon) FEC";
              }
              enum "base-r" {
                value 2;
                description "Enable BASE-R FEC";
              }
            }
            description
              "Set the Forward Error Correction on an interface";
          }
    
          leaf flow-control {
            tailf:dependency "../a1:interface-name";
            when
              "../a1:interface-name[starts-with(text(),'FastEthernet')] or ../a1:interface-name[starts-with(text(),'GigabitEthernet')] or ../a1:interface-name[starts-with(text(),'TenGigE')] or ../a1:interface-name[starts-with(text(),'FortyGigE')] or ../a1:interface-name[starts-with(text(),'HundredGigE')] or ../a1:interface-name[starts-with(text(),'TwoHundredGigE')] or ../a1:interface-name[starts-with(text(),'FourHundredGigE')] or ../a1:interface-name[starts-with(text(),'TwentyFiveGigE')] or ../a1:interface-name[starts-with(text(),'FiftyGigE')] or ../a1:interface-name[starts-with(text(),'CPRIoE')]";
            type enumeration {
              enum "ingress" {
                value 0;
                description
                  "Enable the sending of flow control pause frames";
              }
              enum "egress" {
                value 1;
                description
                  "Enable the receiving of flow control pause frames";
              }
              enum "bidirectional" {
                value 2;
                description
                  "Enable both sending and receiving of flow control pause frames";
              }
            }
            description
              "Set the flow control mode on an interface";
          }
    
          leaf packet-gap {
            tailf:dependency "../a1:interface-name";
            when
              "../a1:interface-name[starts-with(text(),'HundredGigE')] or ../a1:interface-name[starts-with(text(),'TwoHundredGigE')] or ../a1:interface-name[starts-with(text(),'FourHundredGigE')] or ../a1:interface-name[starts-with(text(),'FortyGigE')] or ../a1:interface-name[starts-with(text(),'TenGigE')]";
            type enumeration {
              enum "non-standard" {
                value 16;
                description
                  "Set the non-standard IPG";
              }
            }
            description
              "Set the IPG on an interface";
          }
    
          leaf loopback {
            tailf:dependency "../a1:interface-name";
            when
              "../a1:interface-name[starts-with(text(),'FastEthernet')] or ../a1:interface-name[starts-with(text(),'GigabitEthernet')] or ../a1:interface-name[starts-with(text(),'TenGigE')] or ../a1:interface-name[starts-with(text(),'FortyGigE')] or ../a1:interface-name[starts-with(text(),'HundredGigE')] or ../a1:interface-name[starts-with(text(),'TwoHundredGigE')] or ../a1:interface-name[starts-with(text(),'FourHundredGigE')] or ../a1:interface-name[starts-with(text(),'TwentyFiveGigE')] or ../a1:interface-name[starts-with(text(),'FiftyGigE')] or ../a1:interface-name[starts-with(text(),'CPRIoE')]";
            type enumeration {
              enum "external" {
                value 0;
                description
                  "Enable external loopback (requires loopback connector)";
              }
              enum "internal" {
                value 1;
                description
                  "Enable internal loopback";
              }
              enum "line" {
                value 2;
                description
                  "Enable line loopback";
              }
            }
            description
              "Set the loopback mode on an interface";
          }
    
          container negotiation {
            tailf:dependency "../a1:interface-name";
            when
              "../a1:interface-name[starts-with(text(),'FastEthernet')] or ../a1:interface-name[starts-with(text(),'GigabitEthernet')] or ../a1:interface-name[starts-with(text(),'TenGigE')] or ../a1:interface-name[starts-with(text(),'FortyGigE')] or ../a1:interface-name[starts-with(text(),'HundredGigE')] or ../a1:interface-name[starts-with(text(),'TwoHundredGigE')] or ../a1:interface-name[starts-with(text(),'FourHundredGigE')] or ../a1:interface-name[starts-with(text(),'TwentyFiveGigE')] or ../a1:interface-name[starts-with(text(),'FiftyGigE')]";
            description
              "Select autonegotiation mode";
            container auto {
              presence
                "Indicates a auto node is configured.";
              description
                "Perform link autonegotiation";
              container allow-overrides {
                presence
                  "Indicates a allow-overrides node is configured.";
                description
                  "Allow configured values to override negotiated settings";
              }  // container allow-overrides
            }  // container auto
          }  // container negotiation
    
          leaf speed {
            tailf:dependency "../a1:interface-name";
            when
              "../a1:interface-name[starts-with(text(),'MgmtEth')] or ../a1:interface-name[starts-with(text(),'FastEthernet')] or ../a1:interface-name[starts-with(text(),'PTP')] or ../a1:interface-name[starts-with(text(),'GigabitEthernet')]";
            type enumeration {
              enum "10" {
                value 10;
                description "Ethernet is 10Mb";
              }
              enum "100" {
                value 100;
                description "Ethernet is 100Mb";
              }
              enum "1000" {
                value 1000;
                description "Ethernet is 1Gb";
              }
            }
            description
              "Set the ethernet speed on an interface";
          }
    
          container priority-flow-control {
            tailf:dependency "../a1:interface-name";
            when
              "../a1:interface-name[starts-with(text(),'TenGigE')] or ../a1:interface-name[starts-with(text(),'FortyGigE')] or ../a1:interface-name[starts-with(text(),'HundredGigE')] or ../a1:interface-name[starts-with(text(),'TwoHundredGigE')] or ../a1:interface-name[starts-with(text(),'FourHundredGigE')] or ../a1:interface-name[starts-with(text(),'TwentyFiveGigE')] or ../a1:interface-name[starts-with(text(),'FiftyGigE')]";
            description
              "Priority flow control options";
            leaf mode {
              type enumeration {
                enum "off" {
                  value 0;
                  description
                    "Disable priority flow control";
                }
                enum "on" {
                  value 1;
                  description
                    "Enable priority flow control";
                }
              }
              description
                "Set priority flow control mode";
            }
    
            container watchdog {
              description
                " Priority flow control watchdog options";
              leaf mode {
                type enumeration {
                  enum "off" {
                    value 0;
                    description
                      "Disable priority flow control watchdog";
                  }
                  enum "on" {
                    value 1;
                    description
                      "Enable priority flow control watchdog";
                  }
                }
                description
                  "Set priority flow control watchdog mode";
              }
    
              leaf interval {
                type uint32 {
                  range "100..1000";
                }
                description
                  "PFC WD Polling Interval";
              }
    
              leaf shutdown-multiplier {
                type uint32 {
                  range "1..10";
                }
                description
                  "Pause Storm Detection Timer Threshold";
              }
    
              leaf auto-restore-multiplier {
                type uint32 {
                  range "0..100";
                }
                description
                  "Watchdog Auto Restore Timer";
              }
            }  // container watchdog
          }  // container priority-flow-control
    
          container fast-shutdown {
            tailf:dependency "../a1:interface-name";
            when
              "../a1:interface-name[starts-with(text(),'FastEthernet')] or ((../a1:interface-name[starts-with(text(),'GigabitEthernet')] or ../a1:interface-name[starts-with(text(),'TenGigE')] or ../a1:interface-name[starts-with(text(),'FortyGigE')] or ../a1:interface-name[starts-with(text(),'HundredGigE')] or ../a1:interface-name[starts-with(text(),'TwoHundredGigE')] or ../a1:interface-name[starts-with(text(),'FourHundredGigE')] or ../a1:interface-name[starts-with(text(),'TwentyFiveGigE')] or ../a1:interface-name[starts-with(text(),'FiftyGigE')]) and ../a1:interface-name[not(contains(text(),'.'))])";
            presence
              "Indicates a fast-shutdown node is configured.";
            description "Enable fast shutdown";
          }  // container fast-shutdown
    
          container optical-power {
            tailf:dependency "../a1:interface-name";
            when
              "../a1:interface-name[starts-with(text(),'FastEthernet')] or ((../a1:interface-name[starts-with(text(),'GigabitEthernet')] or ../a1:interface-name[starts-with(text(),'TenGigE')] or ../a1:interface-name[starts-with(text(),'FortyGigE')] or ../a1:interface-name[starts-with(text(),'HundredGigE')] or ../a1:interface-name[starts-with(text(),'TwoHundredGigE')] or ../a1:interface-name[starts-with(text(),'FourHundredGigE')] or ../a1:interface-name[starts-with(text(),'TwentyFiveGigE')] or ../a1:interface-name[starts-with(text(),'FiftyGigE')]) and ../a1:interface-name[not(contains(text(),'.'))])";
            description
              "Commands to set the optical power degrade alarm threshold";
            container alarm {
              description
                "Set the optical power alarm threshold";
              leaf rx {
                type int32 {
                  range "-300..50";
                }
                description
                  "Set the alarm threshold for received optical power";
              }
            }  // container alarm
          }  // container optical-power
    
          container frame-preemption {
            tailf:dependency "../a1:interface-name";
            when
              "../a1:interface-name[starts-with(text(),'FastEthernet')] or ../a1:interface-name[starts-with(text(),'GigabitEthernet')] or ../a1:interface-name[starts-with(text(),'TenGigE')] or ../a1:interface-name[starts-with(text(),'FortyGigE')] or ../a1:interface-name[starts-with(text(),'HundredGigE')] or ../a1:interface-name[starts-with(text(),'TwoHundredGigE')] or ../a1:interface-name[starts-with(text(),'FourHundredGigE')] or ../a1:interface-name[starts-with(text(),'TwentyFiveGigE')] or ../a1:interface-name[starts-with(text(),'FiftyGigE')] or ../a1:interface-name[starts-with(text(),'CPRIoE')]";
            presence
              "Indicates a frame-preemption node is configured.";
            description
              "Configure frame preemption operational mode";
          }  // container frame-preemption
        }  // grouping GROUP-BODY
    
        augment /a1:interfaces/a1:interface {
          uses GROUP-BODY;
        }
    
        augment /a1:interfaces/a1:interface-preconfigure {
          uses GROUP-BODY;
        }
    
        container fast-shutdown {
          description
            "Fast shutdown Configuration";
          container ethernet {
            presence
              "Indicates a ethernet node is configured.";
            description
              "Activate fast shutdown for all Ethernet interfaces";
          }  // container ethernet
        }  // container fast-shutdown
    
        container priority-flow-control {
          description
            "Priority flow control actions on all interfaces";
          container watchdog {
            description
              "Priority flow control watchdog options";
            leaf mode {
              type enumeration {
                enum "off" {
                  value 0;
                  description
                    "Disable priority flow control watchdog";
                }
                enum "on" {
                  value 1;
                  description
                    "Enable priority flow control watchdog";
                }
              }
              description
                "Set priority flow control watchdog mode";
            }
    
            leaf interval {
              type uint32 {
                range "100..1000";
              }
              description
                "PFC WD Polling Interval";
            }
    
            leaf shutdown-multiplier {
              type uint32 {
                range "1..10";
              }
              description
                "Pause Storm Detection Timer Threshold";
            }
    
            leaf auto-restore-multiplier {
              type uint32 {
                range "0..100";
              }
              description
                "Watchdog Auto Restore Timer";
            }
          }  // container watchdog
        }  // container priority-flow-control
      }  // module Cisco-IOS-XR-um-if-ethernet-cfg
    

© 2023 YumaWorks, Inc. All rights reserved.