This module contains a collection of YANG definitions for Cisco IOS-XR if-ethernet package configuration. This YANG module augm...
Version: 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.