This module contains a collection of YANG definitions for Cisco IOS-XR interface package configuration. This YANG module augmen...
Version: 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"; 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"; } 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 access-group { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[not(starts-with(text(),'tunnel-gre'))] and ../../a1:interface-name[not(starts-with(text(),'tunnel-te'))] and ../../a1:interface-name[not(starts-with(text(),'Loopback'))] and ../../a1:interface-name[not(starts-with(text(),'vasileft'))] and ../../a1:interface-name[not(starts-with(text(),'vasiright'))]"; description "Specify access group for packets"; container ingress { xr:xr-xml-map "ip_pfilter_cfg:Outbound"; must "access-list-name-1"; presence "Indicates an ingress node is configured."; description "IPv4 Packet filter to be applied to inbound packets"; container access-list-name-1 { presence "Indicates this Access-list name is configured"; description "Access-list name"; leaf name { type xr:Cisco-ios-xr-string { length "1..64"; } mandatory true; description "Access-list name"; } container common { presence "Indicates this is a common Access-list name"; description "common Access-list name"; } // container common } // container access-list-name-1 container access-list-name-2 { must "../access-list-name-1"; presence "Indicates this Access-list name is configured"; description "Access-list name"; leaf name { type xr:Cisco-ios-xr-string { length "1..64"; } mandatory true; description "Access-list name"; } container common { presence "Indicates this is a common Access-list name"; description "common Access-list name"; } // container common } // container access-list-name-2 container access-list-name-3 { must "../access-list-name-2"; presence "Indicates this Access-list name is configured"; description "Access-list name"; leaf name { type string { length "1..64"; } mandatory true; description "Access-list name"; } container common { presence "Indicates this is a common Access-list name"; description "common Access-list name"; } // container common } // container access-list-name-3 container access-list-name-4 { must "../access-list-name-3"; presence "Indicates this Access-list name is configured"; description "Access-list name"; leaf name { type string { length "1..64"; } mandatory true; description "Access-list name"; } container common { presence "Indicates this is a common Access-list name"; description "common Access-list name"; } // container common } // container access-list-name-4 container access-list-name-5 { must "../access-list-name-4"; presence "Indicates this Access-list name is configured"; description "Access-list name"; leaf name { type string { length "1..64"; } mandatory true; description "Access-list name"; } container common { presence "Indicates this is a common Access-list name"; description "common Access-list name"; } // container common } // container access-list-name-5 container hardware-count { tailf:dependency "../../../../a1:interface-name"; when "../../../../a1:interface-name[not(starts-with(text(),'MgmtEth'))]"; presence "Indicates a hardware-count node is configured."; description "Count packets in hardware"; } // container hardware-count container interface-statistics { presence "Indicates an interface-statistics node is configured."; description "Per interface statistics in hardware"; } // container interface-statistics leaf compress-level { type uint32 { range "0..3"; } must "not(../access-list-name-2 or ../access-list-name-1/common)"; description "Specify ACL compression in hardware"; } } // container ingress container egress { xr:xr-xml-map "ip_pfilter_cfg:Outbound"; presence "Indicates an egress node is configured."; description "IPv4 Packet filter to be applied to outbound packets"; container access-list-name { presence "Indicates this Access-list name is configured"; description "Access-list name"; leaf name { type xr:Cisco-ios-xr-string { length "1..64"; } mandatory true; description "Access-list name"; } } // container access-list-name container hardware-count { tailf:dependency "../../../../a1:interface-name"; when "../../../../a1:interface-name[not(starts-with(text(),'MgmtEth'))]"; presence "Indicates a hardware-count node is configured."; description "Count packets in hardware"; } // container hardware-count container interface-statistics { presence "Indicates an interface-statistics node is configured."; description "Per interface statistics in hardware"; } // container interface-statistics leaf compress-level { type uint32 { range "0..3"; } description "Specify ACL compression in hardware"; } } // container egress } // container access-group container forwarding-enable { presence "Indicates a forwarding-enable node is configured."; description "enable ipv4 forwarding on a interface"; } // container forwarding-enable container point-to-point { presence "Indicates a point-to-point node is configured."; description "Enable point-to-point handling for this interface."; } // container point-to-point leaf mtu { type uint32 { range "68..65535"; } description "Set IPv4 Maximum Transmission Unit"; } container redirects { presence "Indicates a redirects node is configured."; description "Enable sending ICMP Redirect messages"; } // container redirects container mask-reply { presence "Indicates a mask-reply node is configured."; description "Enable sending ICMP mask reply messages"; } // container mask-reply container helper-addresses { description "Specify a destination address for UDP broadcasts"; list helper-address { key "address vrf"; description "Specify a destination address for UDP broadcasts"; leaf address { type inet:ipv4-address-no-zone; description "Specify a destination address for UDP broadcasts"; } leaf vrf { type xr:Cisco-ios-xr-string { length "1..32"; } description "VRF name"; } } // list helper-address } // container helper-addresses container icmp { description "Disable ICMP unreachable for Nullx interface"; container unreachables { description "Disable sending ICMP Unreachable messages"; container disable { presence "Indicates a disable node is configured."; description "Override sending of ICMP Unreachable messages"; } // container disable } // container unreachables } // container icmp container unreachables { description "Enable sending ICMP Unreachable messages"; container disable { presence "Indicates a disable node is configured."; description "Override sending of ICMP Unreachable messages"; } // container disable } // container unreachables container directed-broadcast { presence "Indicates a directed-broadcast node is configured."; description "Enable forwarding of directed broadcasts"; } // container directed-broadcast container bgp { description "Enable BGP policy based feature"; container policy { description "BGP policy"; container accounting { description "BGP policy accounting"; container input { must "source-accounting or destination-accounting"; presence "Indicates a input node is configured."; description "BGP policy accounting on input"; container source-accounting { presence "Indicates a source-accounting node is configured."; description "BGP policy accounting on source IP address"; } // container source-accounting container destination-accounting { presence "Indicates a destination-accounting node is configured."; description "BGP policy accounting on destination IP address"; } // container destination-accounting } // container input container output { must "source-accounting or destination-accounting"; presence "Indicates a output node is configured."; description "BGP policy accounting on output"; container source-accounting { presence "Indicates a source-accounting node is configured."; description "BGP policy accounting on source IP address"; } // container source-accounting container destination-accounting { presence "Indicates a destination-accounting node is configured."; description "BGP policy accounting on destination IP address"; } // container destination-accounting } // container output } // container accounting container propagation { description "BGP QoS/Flow-tag policy propagation"; container input { description "Flow type is input"; container ip-precedence { description "QPPB using IP Precedence"; container source { must "not(../destination or ../../qos-group/source or ../../qos-group/destination)"; presence "Indicates a source node is configured."; description "QPPB on source IP address"; container qos-group { description "QPPB using Qos Group"; container source { must "not(../destination)"; presence "Indicates a source node is configured."; description "QPPB on source IP address"; } // container source container destination { must "not(../source)"; presence "Indicates a destination node is configured."; description "QPPB on destination IP address"; } // container destination } // container qos-group } // container source container destination { must "not(../source or ../../qos-group/source or ../../qos-group/destination)"; presence "Indicates a destination node is configured."; description "QPPB on destination IP address"; container qos-group { description "QPPB using Qos Group"; container destination { presence "Indicates a destination node is configured."; description "QPPB on destination IP address"; } // container destination } // container qos-group } // container destination } // container ip-precedence container qos-group { description "QPPB using Qos Group"; container source { must "not(../destination or ../../ip-precedence/source or ../../ip-precedence/destination)"; presence "Indicates a source node is configured."; description "QPPB on source IP address"; container ip-precedence { description "QPPB using IP Precedence"; container destination { presence "Indicates a destination node is configured."; description "QPPB on destination IP address"; } // container destination } // container ip-precedence } // container source container destination { must "not(../source or ../../ip-precedence/source or ../../ip-precedence/destination)"; presence "Indicates a destination node is configured."; description "QPPB on destination IP address"; } // container destination } // container qos-group container flow-tag { must "(source or destination) and not(source and destination)"; presence "Indicates a flow-tag node is configured."; description "Flow tag policy option"; container source { presence "Indicates a source node is configured."; description "Flow-tag policy on source IP address"; } // container source container destination { presence "Indicates a destination node is configured."; description "Flow-tag policy on destination IP address"; } // container destination } // container flow-tag } // container input } // container propagation } // container policy } // container bgp container verify { description "Enable per packet validation"; container unicast { description "Enable per packet validation for unicast"; container source { description "Validation of source address"; container reachable-via { presence "Indicates a reachable-via node is configured."; description "Specify reachability check to apply to the source address"; leaf type { type enumeration { enum "any" { value 0; description "Source is reachable via any interface"; } enum "rx" { value 1; description "Source is reachable via interface on which packet was received"; } } mandatory true; description "Source reachable type"; } leaf allow-self-ping { type boolean; mandatory true; description "Allow router to ping itself (opens vulnerability in verification)"; } leaf allow-default { type boolean; mandatory true; description "Allow default route to match when checking source address"; } } // container reachable-via } // container source } // container unicast } // container verify container ttl-propagate { description "Disable ip ttl propagation for this interface."; container disable { presence "Indicates a disable node is configured."; description "Disable ipv4 ttl propagation on this interface"; } // container disable } // container ttl-propagate container tcp-mss-adjust { description "Enable tcp mss adjust for this interface."; container enable { presence "Indicates a enable node is configured."; description "Enable tcp mss adjust on this interface"; } // container enable } // container tcp-mss-adjust container flowspec { description "Flowspec on IPv4 interface"; container disable { presence "Indicates a disable node is configured."; description "Disable flowspec on interface"; } // container disable } // container flowspec container addresses { description "Set the IPv4 address of an interface"; container address { presence "Indicates a address 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 "IP subnet mask"; } leaf route-tag { type uint32 { range "1..4294967295"; } description "Route-tag to be associated with this address"; } } // container address 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 "Route-tag to be associated with this address"; } } // list secondary } // container secondaries leaf unnumbered { tailf:dependency "../../../a1:interface-name"; when "../../../a1:interface-name[not(starts-with(text(),'pw-ether'))]"; type xr:Interface-name; description "Enable IP processing without an explicit address"; } container dhcp { tailf:dependency "../../../a1:interface-name"; when "../../../a1:interface-name[starts-with(text(),'MgmtEth')] or ../../../a1:interface-name[starts-with(text(),'BVI')]"; presence "Indicates a dampening node is configured."; description "IPv4 address and Mask negotiated via DHCP"; } // container dhcp } // container addresses } // container ipv4 container ipv6 { description "Interface IPv6 config commands"; container access-group { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[not(starts-with(text(),'tunnel-gre'))] and ../../a1:interface-name[not(starts-with(text(),'tunnel-te'))] and ../../a1:interface-name[not(starts-with(text(),'Loopback'))] and ../../a1:interface-name[not(starts-with(text(),'vasileft'))] and ../../a1:interface-name[not(starts-with(text(),'vasiright'))]"; description "Specify access group for packets"; container ingress { xr:xr-xml-map "ip_pfilter_cfg:Outbound"; must "access-list-name-1"; presence "Indicates an ingress node is configured."; description "IPv6 Packet filter to be applied to inbound packets"; container access-list-name-1 { presence "Indicates this Access-list name is configured"; description "Access-list name"; leaf name { type xr:Cisco-ios-xr-string { length "1..64"; } mandatory true; description "Access-list name"; } container common { presence "Indicates this is a common Access-list name"; description "common Access-list name"; } // container common } // container access-list-name-1 container access-list-name-2 { must "../access-list-name-1"; presence "Indicates this Access-list name is configured"; description "Access-list name"; leaf name { type xr:Cisco-ios-xr-string { length "1..64"; } mandatory true; description "Access-list name"; } container common { presence "Indicates this is a common Access-list name"; description "common Access-list name"; } // container common } // container access-list-name-2 container access-list-name-3 { must "../access-list-name-2"; presence "Indicates this Access-list name is configured"; description "Access-list name"; leaf name { type xr:Cisco-ios-xr-string { length "1..64"; } mandatory true; description "Access-list name"; } container common { presence "Indicates this is a common Access-list name"; description "common Access-list name"; } // container common } // container access-list-name-3 container access-list-name-4 { must "../access-list-name-3"; presence "Indicates this Access-list name is configured"; description "Access-list name"; leaf name { type xr:Cisco-ios-xr-string { length "1..64"; } mandatory true; description "Access-list name"; } container common { presence "Indicates this is a common Access-list name"; description "common Access-list name"; } // container common } // container access-list-name-4 container access-list-name-5 { must "../access-list-name-4"; presence "Indicates this Access-list name is configured"; description "Access-list name"; leaf name { type string { length "1..64"; } mandatory true; description "Access-list name"; } container common { presence "Indicates this is a common Access-list name"; description "common Access-list name"; } // container common } // container access-list-name-5 container interface-statistics { presence "Indicates an interface-statistics node is configured."; description "Per interface statistics in hardware"; } // container interface-statistics leaf compress-level { type uint32 { range "0..3"; } must "not(../access-list-name-2 or ../access-list-name-1/common)"; description "Specify ACL compression in hardware"; } } // container ingress container egress { xr:xr-xml-map "ip_pfilter_cfg:Outbound"; presence "Indicates an egress node is configured."; description "IPv6 Packet filter to be applied to outbound packets"; container access-list-name-1 { presence "Indicates this Access-list name is configured"; description "Access-list name"; leaf name { type xr:Cisco-ios-xr-string { length "1..64"; } mandatory true; description "Access-list name"; } } // container access-list-name-1 container interface-statistics { presence "Indicates an interface-statistics node is configured."; description "Per interface statistics in hardware"; } // container interface-statistics leaf compress-level { type uint32 { range "0..3"; } description "Specify ACL compression in hardware"; } } // container egress } // container access-group leaf mtu { type uint32 { range "1280..65535"; } description "Set IPv6 Maximum Transmission Unit"; } container unreachables { description "Enable sending ICMP Unreachable messages"; container disable { presence "Indicates a disable node is configured."; description "Override sending of ICMP Unreachable messages"; } // container disable } // container unreachables container verify { description "Enable per packet validation"; container unicast { description "Enable per packet validation for unicast"; container source { description "Validation of source address"; container reachable-via { presence "Indicates a reachable-via node is configured."; description "Specify reachability check to apply to the source address"; leaf type { type enumeration { enum "any" { value 0; description "Source is reachable via any interface"; } enum "rx" { value 1; description "Source is reachable via interface on which packet was received"; } } mandatory true; description "Source reachable type"; } leaf allow-self-ping { type boolean; mandatory true; description "Allow router to ping itself (opens vulnerability in verification)"; } leaf allow-default { type boolean; mandatory true; description "Allow default route to match when checking source address"; } } // container reachable-via } // container source } // container unicast } // container verify container bgp { description "Enable BGP policy based feature"; container policy { description "BGP policy"; container accounting { description "BGP policy accounting"; container input { must "source-accounting or destination-accounting"; presence "Indicates a input node is configured."; description "BGP policy accounting on input"; container source-accounting { presence "Indicates a source-accounting node is configured."; description "BGP policy accounting on source IP address"; } // container source-accounting container destination-accounting { presence "Indicates a destination-accounting node is configured."; description "BGP policy accounting on destination IP address"; } // container destination-accounting } // container input container output { must "source-accounting or destination-accounting"; presence "Indicates a output node is configured."; description "BGP policy accounting on output"; container source-accounting { presence "Indicates a source-accounting node is configured."; description "BGP policy accounting on source IP address"; } // container source-accounting container destination-accounting { presence "Indicates a destination-accounting node is configured."; description "BGP policy accounting on destination IP address"; } // container destination-accounting } // container output } // container accounting container propagation { description "BGP QoS/Flow-tag policy propagation"; container input { description "FLow type is input"; container ip-precedence { description "QPPB using IP Precedence"; container source { must "not(../destination or ../../qos-group/source or ../../qos-group/destination)"; presence "Indicates a source node is configured."; description "QPPB on source IP address"; container qos-group { description "QPPB using Qos Group"; container source { must "not(../destination)"; presence "Indicates a source node is configured."; description "QPPB on source IP address"; } // container source container destination { must "not(../source)"; presence "Indicates a destination node is configured."; description "QPPB on destination IP address"; } // container destination } // container qos-group } // container source container destination { must "not(../source or ../../qos-group/source or ../../qos-group/destination)"; presence "Indicates a destination node is configured."; description "QPPB on destination IP address"; container qos-group { description "QPPB using Qos Group"; container destination { presence "Indicates a destination node is configured."; description "QPPB on destination IP address"; } // container destination } // container qos-group } // container destination } // container ip-precedence container qos-group { description "QPPB using Qos Group"; container source { must "not(../destination or ../../ip-precedence/source or ../../ip-precedence/destination)"; presence "Indicates a source node is configured."; description "QPPB on source IP address"; container ip-precedence { description "QPPB using IP Precedence"; container destination { presence "Indicates a destination node is configured."; description "QPPB on destination IP address"; } // container destination } // container ip-precedence } // container source container destination { must "not(../source or ../../ip-precedence/source or ../../ip-precedence/destination)"; presence "Indicates a destination node is configured."; description "QPPB on destination IP address"; } // container destination } // container qos-group container flow-tag { must "(source or destination) and not(source and destination)"; presence "Indicates a flow-tag node is configured."; description "Flow tag policy option"; container source { presence "Indicates a source node is configured."; description "Flow-tag policy on source IP address"; } // container source container destination { presence "Indicates a destination node is configured."; description "Flow-tag policy on destination IP address"; } // container destination } // container flow-tag } // container input } // container propagation } // container policy } // container bgp container ttl-propagate { description "Disable ip ttl propagation for this interface."; container disable { presence "Indicates a disable node is configured."; description "Disable ipv6 ttl propagation on this interface"; } // container disable } // container ttl-propagate container tcp-mss-adjust { description "Enable tcp mss adjust for this interface."; container enable { presence "Indicates a enable node is configured."; description "Enable tcp mss adjust on this interface"; } // container enable } // container tcp-mss-adjust container flowspec { description "Flowspec on IPv6 interface"; container disable { presence "Indicates a disable node is configured."; description "Disable flowspec on interface"; } // container disable } // container flowspec container addresses { description "Set the IPv6 address of an interface"; list ipv6-address { key "address"; description "IPv6 address"; leaf address { type inet:ip-address-no-zone; description "IPv6 name or address"; } leaf prefix-length { type xr:Ipv6-prefix-length; mandatory true; description "Prefix length in bits"; } leaf zone { type union { type string { pattern '0'; } type string; } mandatory true; description "IPv6 address zone"; } leaf route-tag { type uint32 { range "1..4294967295"; } description "Route-tag to be associated with this address"; } } // list ipv6-address 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 union { type string { pattern '0'; } type string; } mandatory true; description "IPv6 address zone"; } leaf route-tag { type uint32 { range "1..4294967295"; } description "Route-tag to be associated with this address"; } } // container link-local-address container eui64-addresses { description "EUI-64 IPv6 address"; 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 xr:Ipv6-prefix-length; mandatory true; description "Prefix Length"; } leaf zone { type union { type string { pattern '0'; } type string; } mandatory true; description "IPv6 address zone"; } leaf route-tag { type uint32 { range "1..4294967295"; } description "Route-tag to be associated with this address"; } } // list eui64-address } // container eui64-addresses container autoconfig { tailf:dependency "../../../a1:interface-name"; when "../../../a1:interface-name[starts-with(text(),'MgmtEth')]"; presence "Indicates a autoconfig node is configured."; description "Enable slaac on Mgmt interface"; } // container autoconfig container dhcp { tailf:dependency "../../../a1:interface-name"; when "../../../a1:interface-name[starts-with(text(),'MgmtEth')] or ../../../a1:interface-name[starts-with(text(),'BVI')]"; presence "Indicates a dhcp node is configured."; description "Enable dhcp on this interface"; } // container dhcp container dhcp-client-options { presence "Indicates a dhcp-client-options node is configured."; description "DHCP Client Options"; } // container dhcp-client-options } // container addresses container enable { presence "Indicates a dampening node is configured."; description "Enable IPv6 on interface"; } // container enable } // 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"; } container ethernet-services { tailf:dependency "../a1:interface-name"; when "../a1:interface-name[not(starts-with(text(),'tunnel-ip'))] and ../a1:interface-name[not(starts-with(text(),'tunnel-te'))] and ../a1:interface-name[not(starts-with(text(),'Loopback'))] and ../a1:interface-name[not(starts-with(text(),'BVI'))] and ../a1:interface-name[not(starts-with(text(),'MgmtEth'))]"; description "Ethernet related services"; container access-group { description "Specify access control for packets"; leaf ingress { type xr:Cisco-ios-xr-string { length "1..64"; } description "ingress Access-list name"; } leaf egress { type xr:Cisco-ios-xr-string { length "1..64"; } description "egress Access-list name"; } } // container access-group } // container ethernet-services leaf load-interval { type uint32 { range "0|30|60|90|120|150|180|210|240|270|300|330|360|390|420|450|480|510|540|570|600"; } default "300"; description "Specify interval for load calculation for an interface"; } container ipv4 { description "IPv4 interface subcommands"; container flowspec { description "Flowspec on IPv4 interface"; container disable { presence "Indicates a disable node is configured."; description "Disable FlowSpec on this interface"; } // container disable } // container flowspec } // container ipv4 container ipv6 { description "IPv6 interface subcommands"; container flowspec { description "Flowspec on IPv6 interface"; container disable { presence "Indicates a disable node is configured."; description "Disable flowspec on interface"; } // container disable } // container flowspec } // container ipv6 container l2transport { presence "Indicates a l2transport node is configured."; description "Enable Layer 2 transport and enter its configuration submode"; container l2protocol { 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(),'TwentyFiveGigE')] or ../../a1:interface-name[starts-with(text(),'Ethernet')] or ../../a1:interface-name[starts-with(text(),'Bundle-Ether')] or ../../a1:interface-name[starts-with(text(),'PW-Ether')] or ../../a1:interface-name[starts-with(text(),'Interflex')]) and (../../a1:interface-name[not(contains(text(),'.'))] or ../../a1:sub-interface-type/a1:l2transport)"; description "Layer 2 protocol handling"; container cpsv { description "CDP, PVST+, STP, and VTP protocols"; container tunnel { must "not(../reverse-tunnel) and not(../drop)"; presence "Indicates a tunnel node is configured."; description "Tunnel at ingress"; } // container tunnel container reverse-tunnel { must "not(../tunnel) and not(../drop)"; presence "Indicates a reverse-tunnel node is configured."; description "Tunnel at egress"; } // container reverse-tunnel container drop { must "not(../tunnel) and not(../reverse-tunnel)"; presence "Indicates a drop node is configured."; description "Drop these protocol packets"; } // container drop } // container cpsv container cdp { description "Cisco Discovery Protocol"; container drop { must "not(../tunnel) and not(../forward)"; presence "Indicates a drop node is configured."; description "Drop this protocol's packets"; } // container drop container forward { must "not(../drop) and not(../tunnel)"; presence "Indicates a forward node is configured."; description "Forward this protocol's packets"; } // container forward container tunnel { must "not(../drop) and not(../forward)"; presence "Indicates a tunnel node is configured."; description "Tunnel this protocol's packets"; } // container tunnel container experimental { description "Modify the MPLS Experimental bits"; leaf mpls-experimental-bits { type uint32 { range "0..7"; } must "../../forward or ../../tunnel"; description "Set the MPLS experimental bits for this interface"; } } // container experimental } // container cdp container stp { description "Spanning Tree Protocol"; container drop { must "not(../tunnel) and not(../forward)"; presence "Indicates a drop node is configured."; description "Drop this protocol's packets"; } // container drop container forward { must "not(../drop) and not(../tunnel)"; presence "Indicates a forward node is configured."; description "Forward this protocol's packets"; } // container forward container tunnel { must "not(../drop) and not(../forward)"; presence "Indicates a tunnel node is configured."; description "Tunnel this protocol's packets"; } // container tunnel container experimental { description "Modify the MPLS Experimental bits"; leaf mpls-experimental-bits { type uint32 { range "0..7"; } must "../../forward or ../../tunnel"; description "Set the MPLS experimental bits for this interface"; } } // container experimental } // container stp container vtp { description "VLAN Trunk Protocol"; container drop { must "not(../tunnel) and not(../forward)"; presence "Indicates a drop node is configured."; description "Drop this protocol's packets"; } // container drop container forward { must "not(../drop) and not(../tunnel)"; presence "Indicates a forward node is configured."; description "Forward this protocol's packets"; } // container forward container tunnel { must "not(../drop) and not(../forward)"; presence "Indicates a tunnel node is configured."; description "Tunnel this protocol's packets"; } // container tunnel container experimental { description "Modify the MPLS Experimental bits"; leaf mpls-experimental-bits { type uint32 { range "0..7"; } must "../../forward or ../../tunnel"; description "Set the MPLS experimental bits for this interface"; } } // container experimental } // container vtp container pvst { description "Per VLAN Spanning Tree"; container drop { must "not(../tunnel) and not(../forward)"; presence "Indicates a drop node is configured."; description "Drop this protocol's packets"; } // container drop container forward { must "not(../drop) and not(../tunnel)"; presence "Indicates a forward node is configured."; description "Forward this protocol's packets"; } // container forward container tunnel { must "not(../drop) and not(../forward)"; presence "Indicates a tunnel node is configured."; description "Tunnel this protocol's packets"; } // container tunnel container experimental { description "Modify the MPLS Experimental bits"; leaf mpls-experimental-bits { type uint32 { range "0..7"; } must "../../forward or ../../tunnel"; description "Set the MPLS experimental bits for this interface"; } } // container experimental } // container pvst } // container l2protocol container propagate { description "Select events to propagate"; container remote-status { presence "Indicates a remote-status node is configured."; description "Propagate remote link status changes"; } // container remote-status } // container propagate container flow { description "Netflow configuration"; container datalinkframesection { if-feature nf_parser_verify_wrapper_allow_l2_main_dlfs; description "Data link section netflow configuration"; container monitor { description "Specify a flow monitor for packets"; container ingress-monitors { description "Apply flow monitor on incoming packets"; list ingress-monitor { key "monitor-map-name"; description "Specify a flow monitor for packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } } // list ingress-monitor } // container ingress-monitors container ingress-monitor-samplers { description "Specify a flow monitor and sampler for incoming packets"; list ingress-monitor-sampler { key "monitor-map-name sampler-map-name"; description "Specify a flow monitor and sampler for incoming packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } leaf sampler-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a sampler for packets"; } } // list ingress-monitor-sampler } // container ingress-monitor-samplers } // container monitor } // container datalinkframesection } // container flow container monitor-sessions { description "Monitor-session configuration commands"; list monitor-session { must "ethernet or ipv4 or ipv6 or mpls-ipv4 or mpls-ipv6"; key "session-name"; description "Monitor-session configuration commands"; leaf session-name { type string { length "1..79"; } description "Monitor-session configuration commands"; } container ethernet { must "not(../ipv4 or ../ipv6 or ../mpls-ipv4 or ../mpls-ipv6)"; presence "Indicates a ethernet node is configured."; description "Replicate Ethernet traffic"; } // container ethernet container ipv4 { must "not(../ethernet or ../ipv6 or ../mpls-ipv4 or ../mpls-ipv6)"; presence "Indicates a ipv4 node is configured."; description "Replicate IPv4 traffic"; } // container ipv4 container ipv6 { must "not(../ipv4 or ../ethernet or ../mpls-ipv4 or ../mpls-ipv6)"; presence "Indicates a ipv6 node is configured."; description "Replicate IPv6 traffic"; } // container ipv6 container mpls-ipv4 { must "not(../ipv4 or ../ipv6 or ../ethernet or ../mpls-ipv6)"; presence "Indicates a mpls-ipv4 node is configured."; description "Replicate MPLS-IPv4 traffic"; } // container mpls-ipv4 container mpls-ipv6 { must "not(../ipv4 or ../ipv6 or ../mpls-ipv4 or ../ethernet)"; presence "Indicates a mpls-ipv6 node is configured."; description "Replicate MPLS-IPv6 traffic"; } // container mpls-ipv6 container direction { description "Specify the direction of traffic to replicate"; container rx-only { must "not(../tx-only)"; presence "Indicates a rx-only node is configured."; description "Replicate only received (ingress) traffic"; } // container rx-only container tx-only { must "not(../rx-only)"; presence "Indicates a tx-only node is configured."; description "Replicate only transmitted (egress) traffic"; } // container tx-only } // container direction container port-level { presence "Indicates a port-level node is configured."; description "Replicate traffic on all interfaces of a main interface"; } // container port-level container acl { presence "Indicates a acl node is configured."; description "Enable acl based mirroring"; leaf acl-name { type xr:Cisco-ios-xr-string { length "1..80"; } description "ACL name"; } } // container acl leaf acl-ipv4 { type xr:Cisco-ios-xr-string { length "1..80"; } description "Enable IPv4 ACL based mirroring"; } leaf acl-ipv6 { type xr:Cisco-ios-xr-string { length "1..80"; } description "Enable IPv6 ACL based mirroring"; } container mirror { description "Set the mirroring properties of this interface"; leaf first { type uint32 { range "1..10000"; } description "Enable mirroring on the first portion of a packet"; } leaf interval { type enumeration { enum "512" { value 1; description "Mirror 1 in every 512 packets"; } enum "1K" { value 2; description "Mirror 1 in every 1024 packets"; } enum "2K" { value 3; description "Mirror 1 in every 2048 packets"; } enum "4K" { value 4; description "Mirror 1 in every 4096 packets"; } enum "8K" { value 5; description "Mirror 1 in every 8192 packets"; } enum "16K" { value 6; description "Mirror 1 in every 16384 packets"; } } description "Enable mirroring of every Nth packet"; } } // container mirror } // list monitor-session } // container monitor-sessions container monitor-session-deprecated { description "Monitor-session deprecated configuration commands"; container ethernet { presence "Indicates a ethernet node is configured."; description "Replicate Ethernet traffic"; leaf session-name { type xr:Cisco-ios-xr-string { length "1..79"; } mandatory true; description "Session Name"; } container direction { description "Specify the direction of traffic to replicate"; container rx-only { must "not(../tx-only)"; presence "Indicates a rx-only node is configured."; description "Replicate only received (ingress) traffic"; } // container rx-only container tx-only { must "not(../rx-only)"; presence "Indicates a tx-only node is configured."; description "Replicate only transmitted (egress) traffic"; } // container tx-only } // container direction container acl { presence "Indicates a acl node is configured."; description "Enable acl based mirroring"; leaf acl-name { type xr:Cisco-ios-xr-string { length "1..80"; } description "ACL name"; } } // container acl leaf acl-ipv4 { type xr:Cisco-ios-xr-string { length "1..80"; } description "Enable IPv4 ACL based mirroring"; } leaf acl-ipv6 { type xr:Cisco-ios-xr-string { length "1..80"; } description "Enable IPv6 ACL based mirroring"; } container mirror { description "Set the mirroring properties of this interface"; leaf first { type uint32 { range "1..10000"; } description "Enable mirroring on the first portion of a packet"; } leaf interval { type enumeration { enum "512" { value 1; description "Mirror 1 in every 512 packets"; } enum "1K" { value 2; description "Mirror 1 in every 1024 packets"; } enum "2K" { value 3; description "Mirror 1 in every 2048 packets"; } enum "4K" { value 4; description "Mirror 1 in every 4096 packets"; } enum "8K" { value 5; description "Mirror 1 in every 8192 packets"; } enum "16K" { value 6; description "Mirror 1 in every 16384 packets"; } } description "Enable mirroring of every Nth packet"; } } // container mirror container port-level { presence "Indicates a port-level node is configured."; description "Replicate traffic on all interfaces of a main interface"; } // container port-level } // container ethernet } // container monitor-session-deprecated } // container l2transport 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')] or ../a1:interface-name[starts-with(text(),'Bundle-Ether')] or ../a1:interface-name[starts-with(text(),'PW-Ether')])and ../a1:interface-name[contains(text(),'.')]"; description "Set the carrier delay on an interface"; leaf up { type uint32 { range "1..65535"; } description "Set the carrier delay up value"; } } // container carrier-delay container encapsulation { 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(),'Bundle-Ether')] or ../a1:interface-name[starts-with(text(),'PW-Ether')])and ../a1:interface-name[contains(text(),'.')]and not(../a1:sub-interface-type/a1:l2transport)"; description "Specify which packets will be matched by this sub-interface"; container dot1q { description "IEEE 802.1Q VLAN-tagged packets"; leaf vlan-id { type uint32 { range "1..4094"; } description "Configure first (outer) VLAN ID on the subinterface"; } leaf second-dot1q { type uint32 { range "1..4094"; } must "../vlan-id"; description "Configure second (inner 802.1Q) VLAN ID on the subinterface"; } } // container dot1q container dot1ad { description "IEEE 802.1ad VLAN-tagged packets"; leaf vlan-id { type uint32 { range "1..4094"; } description "Configure first (outer) VLAN ID on the subinterface"; } leaf dot1q { type uint32 { range "1..4094"; } must "../vlan-id"; description "Configure second (inner 802.1Q) VLAN ID on the subinterface"; } } // container dot1ad } // container encapsulation container l2transport-encapsulation { 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(),'Bundle-Ether')] or ../a1:interface-name[starts-with(text(),'PW-Ether')])and ../a1:interface-name[contains(text(),'.')]and ../a1:sub-interface-type/a1:l2transport"; description "Specify which packets will be matched by this sub-interface"; container dot1q { description "IEEE 802.1Q VLAN-tagged packets"; leaf vlan-id { type union { type uint32 { range "1..4094"; } type enumeration { enum "any" { value 4096; description "Match any VLAN id"; } } } must "not(../priority-tagged)"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id { type union { type uint32 { range "1..4094"; } type enumeration { enum "not-set" { value 4097; description "Need to set this when configuring additional vlan-id with a single VLAN id"; } } } must "../vlan-id and ../vlan-id != 'any'"; description "End of VLAN range"; } leaf vlan-id-2 { type union { type uint32 { range "1..4094"; } type enumeration { enum "untagged" { value 65534; description "Packets with no explicit VLAN tag"; } } } must "../vlan-id and ../vlan-id != 'any' and ../end-vlan-id"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-2 { type uint32 { range "1..4094"; } must "../vlan-id-2"; description "End of VLAN range"; } leaf vlan-id-3 { type union { type uint32 { range "1..4094"; } type enumeration { enum "untagged" { value 65534; description "Packets with no explicit VLAN tag"; } } } must "../vlan-id-2"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-3 { type uint32 { range "1..4094"; } must "../vlan-id-3"; description "End of VLAN range"; } leaf vlan-id-4 { type union { type uint32 { range "1..4094"; } type enumeration { enum "untagged" { value 65534; description "Packets with no explicit VLAN tag"; } } } must "../vlan-id-3"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-4 { type uint32 { range "1..4094"; } must "../vlan-id-4"; description "End of VLAN range"; } leaf vlan-id-5 { type union { type uint32 { range "1..4094"; } type enumeration { enum "untagged" { value 65534; description "Packets with no explicit VLAN tag"; } } } must "../vlan-id-4"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-5 { type uint32 { range "1..4094"; } must "../vlan-id-5"; description "End of VLAN range"; } leaf vlan-id-6 { type union { type uint32 { range "1..4094"; } type enumeration { enum "untagged" { value 65534; description "Packets with no explicit VLAN tag"; } } } must "../vlan-id-5"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-6 { type uint32 { range "1..4094"; } must "../vlan-id-6"; description "End of VLAN range"; } leaf vlan-id-7 { type union { type uint32 { range "1..4094"; } type enumeration { enum "untagged" { value 65534; description "Packets with no explicit VLAN tag"; } } } must "../vlan-id-6"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-7 { type uint32 { range "1..4094"; } must "../vlan-id-7"; description "End of VLAN range"; } leaf vlan-id-8 { type union { type uint32 { range "1..4094"; } type enumeration { enum "untagged" { value 65534; description "Packets with no explicit VLAN tag"; } } } must "../vlan-id-7"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-8 { type uint32 { range "1..4094"; } must "../vlan-id-8"; description "End of VLAN range"; } leaf vlan-id-9 { type union { type uint32 { range "1..4094"; } type enumeration { enum "untagged" { value 65534; description "Packets with no explicit VLAN tag"; } } } must "../vlan-id-8"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-9 { type uint32 { range "1..4094"; } must "../vlan-id-9"; description "End of VLAN range"; } leaf second-dot1q { type union { type uint32 { range "1..4094"; } type enumeration { enum "any" { value 4096; description "Match any VLAN id"; } } } must "../vlan-id"; description "End of VLAN range"; } container exact { presence "Indicates this node is configured."; description "Do not allow further inner tags"; } // container exact container ingress { description "Perform MAC-based matching"; leaf source-mac { type yang:mac-address; description "Perform source MAC-based matching"; } } // container ingress container priority-tagged { must "not(../vlan-id)"; presence "Indicates a priority-tagged node is configured."; description "IEEE 802.1ad priority-tagged packets"; container dot1q { presence "Indicates a dot1q node is configured."; description "IEEE 802.1Q VLAN-tagged packets"; leaf vlan-id { type union { type uint32 { range "1..4094"; } type enumeration { enum "any" { value 4096; description "Match any VLAN id"; } } } mandatory true; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id { type uint32 { range "1..4094"; } must "../vlan-id != 'any'"; description "End of VLAN range"; } leaf vlan-id-2 { type uint32 { range "1..4094"; } must "../vlan-id != 'any'"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-2 { type uint32 { range "1..4094"; } must "../vlan-id-2"; description "End of VLAN range"; } leaf vlan-id-3 { type uint32 { range "1..4094"; } must "../vlan-id-2"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-3 { type uint32 { range "1..4094"; } must "../vlan-id-3"; description "End of VLAN range"; } leaf vlan-id-4 { type uint32 { range "1..4094"; } must "../vlan-id-3"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-4 { type uint32 { range "1..4094"; } must "../vlan-id-4"; description "End of VLAN range"; } leaf vlan-id-5 { type uint32 { range "1..4094"; } must "../vlan-id-4"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-5 { type uint32 { range "1..4094"; } must "../vlan-id-5"; description "End of VLAN range"; } leaf vlan-id-6 { type uint32 { range "1..4094"; } must "../vlan-id-5"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-6 { type uint32 { range "1..4094"; } must "../vlan-id-6"; description "End of VLAN range"; } leaf vlan-id-7 { type uint32 { range "1..4094"; } must "../vlan-id-6"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-7 { type uint32 { range "1..4094"; } must "../vlan-id-7"; description "End of VLAN range"; } leaf vlan-id-8 { type uint32 { range "1..4094"; } must "../vlan-id-7"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-8 { type uint32 { range "1..4094"; } must "../vlan-id-8"; description "End of VLAN range"; } leaf vlan-id-9 { type uint32 { range "1..4094"; } must "../vlan-id-8"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-9 { type uint32 { range "1..4094"; } must "../vlan-id-9"; description "End of VLAN range"; } } // container dot1q container exact { presence "Indicates this node is configured."; description "Do not allow further inner tags"; } // container exact container ingress { description "Perform MAC-based matching"; leaf source-mac { type yang:mac-address; description "Perform source MAC-based matching"; } } // container ingress } // container priority-tagged } // container dot1q container dot1ad { description "IEEE 802.1ad VLAN-tagged packets"; leaf vlan-id { type union { type uint32 { range "1..4094"; } type enumeration { enum "any" { value 4096; description "Match any VLAN id"; } } } must "not(../priority-tagged)"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id { type union { type uint32 { range "1..4094"; } type enumeration { enum "not-set" { value 4097; description "Need to set this when configuring additional vlan-id with a single VLAN id"; } } } must "../vlan-id and ../vlan-id != 'any'"; description "End of VLAN range"; } leaf vlan-id-2 { type uint32 { range "1..4094"; } must "../vlan-id and ../vlan-id != 'any' and ../end-vlan-id"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-2 { type uint32 { range "1..4094"; } must "../vlan-id-2"; description "End of VLAN range"; } leaf vlan-id-3 { type uint32 { range "1..4094"; } must "../vlan-id-2"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-3 { type uint32 { range "1..4094"; } must "../vlan-id-3"; description "End of VLAN range"; } leaf vlan-id-4 { type uint32 { range "1..4094"; } must "../vlan-id-3"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-4 { type uint32 { range "1..4094"; } must "../vlan-id-4"; description "End of VLAN range"; } leaf vlan-id-5 { type uint32 { range "1..4094"; } must "../vlan-id-4"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-5 { type uint32 { range "1..4094"; } must "../vlan-id-5"; description "End of VLAN range"; } leaf vlan-id-6 { type uint32 { range "1..4094"; } must "../vlan-id-5"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-6 { type uint32 { range "1..4094"; } must "../vlan-id-6"; description "End of VLAN range"; } leaf vlan-id-7 { type uint32 { range "1..4094"; } must "../vlan-id-6"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-7 { type uint32 { range "1..4094"; } must "../vlan-id-7"; description "End of VLAN range"; } leaf vlan-id-8 { type uint32 { range "1..4094"; } must "../vlan-id-7"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-8 { type uint32 { range "1..4094"; } must "../vlan-id-8"; description "End of VLAN range"; } leaf vlan-id-9 { type uint32 { range "1..4094"; } must "../vlan-id-8"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-9 { type uint32 { range "1..4094"; } must "../vlan-id-9"; description "End of VLAN range"; } leaf dot1q { type union { type uint32 { range "1..4094"; } type enumeration { enum "any" { value 4096; description "Match any VLAN id"; } } } must "../vlan-id"; description "End of VLAN range"; } container exact { presence "Indicates this node is configured."; description "Do not allow further inner tags"; } // container exact container ingress { description "Perform MAC-based matching"; leaf source-mac { type yang:mac-address; description "Perform source MAC-based matching"; } } // container ingress container priority-tagged { must "not(../vlan-id)"; presence "Indicates a priority-tagged node is configured."; description "IEEE 802.1ad priority-tagged packets"; container dot1q { presence "Indicates a dot1q node is configured."; description "IEEE 802.1Q VLAN-tagged packets"; leaf vlan-id { type union { type uint32 { range "1..4094"; } type enumeration { enum "any" { value 4096; description "Match any VLAN id"; } } } mandatory true; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id { type uint32 { range "1..4094"; } must "../vlan-id != 'any'"; description "End of VLAN range"; } leaf vlan-id-2 { type uint32 { range "1..4094"; } must "../vlan-id != 'any'"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-2 { type uint32 { range "1..4094"; } must "../vlan-id-2"; description "End of VLAN range"; } leaf vlan-id-3 { type uint32 { range "1..4094"; } must "../vlan-id-2"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-3 { type uint32 { range "1..4094"; } must "../vlan-id-3"; description "End of VLAN range"; } leaf vlan-id-4 { type uint32 { range "1..4094"; } must "../vlan-id-3"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-4 { type uint32 { range "1..4094"; } must "../vlan-id-4"; description "End of VLAN range"; } leaf vlan-id-5 { type uint32 { range "1..4094"; } must "../vlan-id-4"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-5 { type uint32 { range "1..4094"; } must "../vlan-id-5"; description "End of VLAN range"; } leaf vlan-id-6 { type uint32 { range "1..4094"; } must "../vlan-id-5"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-6 { type uint32 { range "1..4094"; } must "../vlan-id-6"; description "End of VLAN range"; } leaf vlan-id-7 { type uint32 { range "1..4094"; } must "../vlan-id-6"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-7 { type uint32 { range "1..4094"; } must "../vlan-id-7"; description "End of VLAN range"; } leaf vlan-id-8 { type uint32 { range "1..4094"; } must "../vlan-id-7"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-8 { type uint32 { range "1..4094"; } must "../vlan-id-8"; description "End of VLAN range"; } leaf vlan-id-9 { type uint32 { range "1..4094"; } must "../vlan-id-8"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-9 { type uint32 { range "1..4094"; } must "../vlan-id-9"; description "End of VLAN range"; } } // container dot1q container exact { presence "Indicates this node is configured."; description "Do not allow further inner tags"; } // container exact container ingress { description "Perform MAC-based matching"; leaf source-mac { type yang:mac-address; description "Perform source MAC-based matching"; } } // container ingress } // container priority-tagged } // container dot1ad container untagged { presence "Indicates untagged node is configured."; description "Packets with no explicit VLAN tag"; container dot1q { presence "Indicates a dot1q node is configured."; description "IEEE 802.1Q VLAN-tagged packets"; leaf vlan-id { type union { type uint32 { range "1..4094"; } type enumeration { enum "any" { value 4096; description "Match any VLAN id"; } } } mandatory true; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id { type uint32 { range "1..4094"; } must "../vlan-id != 'any'"; description "End of VLAN range"; } leaf vlan-id-2 { type uint32 { range "1..4094"; } must "../vlan-id != 'any'"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-2 { type uint32 { range "1..4094"; } must "../vlan-id-2"; description "End of VLAN range"; } leaf vlan-id-3 { type uint32 { range "1..4094"; } must "../vlan-id-2"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-3 { type uint32 { range "1..4094"; } must "../vlan-id-3"; description "End of VLAN range"; } leaf vlan-id-4 { type uint32 { range "1..4094"; } must "../vlan-id-3"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-4 { type uint32 { range "1..4094"; } must "../vlan-id-4"; description "End of VLAN range"; } leaf vlan-id-5 { type uint32 { range "1..4094"; } must "../vlan-id-4"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-5 { type uint32 { range "1..4094"; } must "../vlan-id-5"; description "End of VLAN range"; } leaf vlan-id-6 { type uint32 { range "1..4094"; } must "../vlan-id-5"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-6 { type uint32 { range "1..4094"; } must "../vlan-id-6"; description "End of VLAN range"; } leaf vlan-id-7 { type uint32 { range "1..4094"; } must "../vlan-id-6"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-7 { type uint32 { range "1..4094"; } must "../vlan-id-7"; description "End of VLAN range"; } leaf vlan-id-8 { type uint32 { range "1..4094"; } must "../vlan-id-7"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-8 { type uint32 { range "1..4094"; } must "../vlan-id-8"; description "End of VLAN range"; } leaf vlan-id-9 { type uint32 { range "1..4094"; } must "../vlan-id-8"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-9 { type uint32 { range "1..4094"; } must "../vlan-id-9"; description "End of VLAN range"; } } // container dot1q container ingress { description "Perform MAC-based matching"; leaf source-mac { type yang:mac-address; description "Perform source MAC-based matching"; } } // container ingress } // container untagged container default { presence "Indicates default node is configured."; description "Packets unmatched by other service instances"; } // container default } // container l2transport-encapsulation container rewrite { description "Set the tag rewriting policy for this EFP"; container ingress { description "Set the tag rewriting policy for this EFP"; container tag { description "Set the tag rewriting policy for this EFP"; container push { description "Push one or more tags"; container dot1q { must "not(../dot1ad or ../../pop/one or ../../pop/two or ../../translate/one-to-one/dot1q or ../../translate/one-to-one/dot1ad or ../../translate/one-to-two/dot1q or ../../translate/one-to-two/dot1ad or ../../translate/two-to-one/dot1q or ../../translate/two-to-one/dot1ad or ../../translate/two-to-two/dot1q or ../../translate/two-to-two/dot1ad)"; presence "Indicates dot1q node is configured."; description "Push a Dot1Q tag"; leaf vlan-id { type uint32 { range "1..4094"; } mandatory true; description "Push a Dot1Q tag"; } leaf second-dot1q { type uint32 { range "1..4094"; } description "Push another Dot1Q tag"; } } // container dot1q container dot1ad { must "not(../dot1q or ../../pop/one or ../../pop/two or ../../translate/one-to-one/dot1q or ../../translate/one-to-one/dot1ad or ../../translate/one-to-two/dot1q or ../../translate/one-to-two/dot1ad or ../../translate/two-to-one/dot1q or ../../translate/two-to-one/dot1ad or ../../translate/two-to-two/dot1q or ../../translate/two-to-two/dot1ad)"; presence "Indicates dot1ad node is configured."; description "Push a Dot1ad tag"; leaf vlan-id { type uint32 { range "1..4094"; } mandatory true; description "Push a Dot1Q tag"; } leaf dot1q { type uint32 { range "1..4094"; } description "Push an inner Dot1Q tag"; } } // container dot1ad } // container push container pop { description "Remove one or more tags"; container one { must "not(../../push/dot1q or ../../push/dot1ad or ../two or ../../translate/one-to-one/dot1q or ../../translate/one-to-one/dot1ad or ../../translate/one-to-two/dot1q or ../../translate/one-to-two/dot1ad or ../../translate/two-to-one/dot1q or ../../translate/two-to-one/dot1ad or ../../translate/two-to-two/dot1q or ../../translate/two-to-two/dot1ad)"; presence "Indicates this node is configured."; description "Remove outer tag only"; } // container one container two { must "not(../../push/dot1q or ../../push/dot1ad or ../one or ../../translate/one-to-one/dot1q or ../../translate/one-to-one/dot1ad or ../../translate/one-to-two/dot1q or ../../translate/one-to-two/dot1ad or ../../translate/two-to-one/dot1q or ../../translate/two-to-one/dot1ad or ../../translate/two-to-two/dot1q or ../../translate/two-to-two/dot1ad)"; presence "Indicates this node is configured."; description "Remove two outermost tags"; } // container two } // container pop container translate { description "Replace tags with other tags"; container one-to-one { description "Replace the outermost tag with another tag"; container dot1q { must "not(../../../push/dot1q or ../../../push/dot1ad or ../../../pop/one or ../../../pop/two or ../dot1ad or ../../one-to-two/dot1q or ../../one-to-two/dot1ad or ../../two-to-one/dot1q or ../../two-to-one/dot1ad or ../../two-to-two/dot1q or ../../two-to-two/dot1ad)"; presence "Indicates dot1q node is configured."; description "Push a Dot1Q tag"; leaf vlan-id { type uint32 { range "1..4094"; } mandatory true; description "Push a Dot1Q tag"; } } // container dot1q container dot1ad { must "not(../../../push/dot1q or ../../../push/dot1ad or ../../../pop/one or ../../../pop/two or ../dot1q or ../../one-to-two/dot1q or ../../one-to-two/dot1ad or ../../two-to-one/dot1q or ../../two-to-one/dot1ad or ../../two-to-two/dot1q or ../../two-to-two/dot1ad)"; presence "Indicates dot1ad node is configured."; description "Push a Dot1ad tag"; leaf vlan-id { type uint32 { range "1..4094"; } mandatory true; description "Push a Dot1Q tag"; } } // container dot1ad } // container one-to-one container one-to-two { description "Replace the outermost tag with two tags"; container dot1q { must "not(../../../push/dot1q or ../../../push/dot1ad or ../../../pop/one or ../../../pop/two or ../../one-to-one/dot1q or ../../one-to-one/dot1ad or ../dot1ad or ../../two-to-one/dot1q or ../../two-to-one/dot1ad or ../../two-to-two/dot1q or ../../two-to-two/dot1ad)"; presence "Indicates a dot1q node is configured."; description "Push a Dot1Q tag"; leaf vlan-id { type uint32 { range "1..4094"; } mandatory true; description "Push a Dot1Q tag"; } leaf second-dot1q { type uint32 { range "1..4094"; } mandatory true; description "Push an inner Dot1Q tag"; } } // container dot1q container dot1ad { must "not(../../../push/dot1q or ../../../push/dot1ad or ../../../pop/one or ../../../pop/two or ../../one-to-one/dot1q or ../../one-to-one/dot1ad or ../dot1q or ../../two-to-one/dot1q or ../../two-to-one/dot1ad or ../../two-to-two/dot1q or ../../two-to-two/dot1ad)"; presence "Indicates a dot1ad node is configured."; description "Push a Dot1ad tag"; leaf vlan-id { type uint32 { range "1..4094"; } mandatory true; description "Push a Dot1Q tag"; } leaf dot1q { type uint32 { range "1..4094"; } mandatory true; description "Push an inner Dot1Q tag"; } } // container dot1ad } // container one-to-two container two-to-one { description "Replace the outermost two tags with one tag"; container dot1q { must "not(../../../push/dot1q or ../../../push/dot1ad or ../../../pop/one or ../../../pop/two or ../../one-to-one/dot1q or ../../one-to-one/dot1ad or ../../one-to-two/dot1q or ../../one-to-two/dot1ad or ../dot1ad or ../../two-to-two/dot1q or ../../two-to-two/dot1ad)"; presence "Indicates dot1q node is configured."; description "Push a Dot1Q tag"; leaf vlan-id { type uint32 { range "1..4094"; } mandatory true; description "Push a Dot1Q tag"; } } // container dot1q container dot1ad { must "not(../../../push/dot1q or ../../../push/dot1ad or ../../../pop/one or ../../../pop/two or ../../one-to-one/dot1q or ../../one-to-one/dot1ad or ../../one-to-two/dot1q or ../../one-to-two/dot1ad or ../dot1q or ../../two-to-two/dot1q or ../../two-to-two/dot1ad)"; presence "Indicates dot1ad node is configured."; description "Push a Dot1ad tag"; leaf vlan-id { type uint32 { range "1..4094"; } mandatory true; description "Push a Dot1Q tag"; } } // container dot1ad } // container two-to-one container two-to-two { description "Replace the outermost two tags with two other tags"; container dot1q { must "not(../../../push/dot1q or ../../../push/dot1ad or ../../../pop/one or ../../../pop/two or ../../one-to-one/dot1q or ../../one-to-one/dot1ad or ../../one-to-two/dot1q or ../../one-to-two/dot1ad or ../dot1ad or ../../two-to-one/dot1q or ../../two-to-one/dot1ad)"; presence "Indicates a dot1q node is configured."; description "Push a Dot1Q tag"; leaf vlan-id { type uint32 { range "1..4094"; } mandatory true; description "Push a Dot1Q tag"; } leaf second-dot1q { type uint32 { range "1..4094"; } mandatory true; description "Push an inner Dot1Q tag"; } } // container dot1q container dot1ad { must "not(../../../push/dot1q or ../../../push/dot1ad or ../../../pop/one or ../../../pop/two or ../../one-to-one/dot1q or ../../one-to-one/dot1ad or ../../one-to-two/dot1q or ../../one-to-two/dot1ad or ../dot1q or ../../two-to-one/dot1q or ../../two-to-one/dot1ad)"; presence "Indicates a dot1ad node is configured."; description "Push a Dot1ad tag"; leaf vlan-id { type uint32 { range "1..4094"; } mandatory true; description "Push a Dot1Q tag"; } leaf dot1q { type uint32 { range "1..4094"; } mandatory true; description "Push an inner Dot1Q tag"; } } // container dot1ad } // container two-to-two } // container translate } // container tag } // container ingress } // container rewrite container local-traffic { description "Set the default encapsulation for this EFP"; container default { description "Set the default encapsulation for this EFP"; container encapsulation { description "Set the default encapsulation for this EFP"; container dot1q { presence "Indicates a dot1q node is configured."; description "Default Dot1Q tag"; leaf vlan-id { type uint32 { range "1..4094"; } mandatory true; description "Default Dot1Q tag"; } leaf second-dot1q { type uint32 { range "1..4094"; } description "Default second Dot1Q tag"; } } // container dot1q container dot1ad { presence "Indicates a dot1ad node is configured."; description "Default Dot1ad tag"; leaf vlan-id { type uint32 { range "1..4094"; } mandatory true; description "Default Dot1ad tag"; } leaf dot1q { type uint32 { range "1..4094"; } description "Default inner Dot1Q tag"; } } // container dot1ad } // container encapsulation } // container default } // container local-traffic container dot1q { description "802.1Q VLAN configuration"; container native { description "802.1Q Native VLAN configuration"; leaf vlan { type uint32 { range "1..4094"; } description "Configure the Native VLAN ID for the trunk"; } } // container native container tunneling { description "Q-in-Q configuration"; leaf ethertype { type enumeration { enum "0x9100" { value 37120; description "The outer Ethertype uses value 0x9100 (default is 0x8100)"; } enum "0x9200" { value 37376; description "The outer Ethertype uses value 0x9200 (default is 0x8100)"; } } description "Configure the outer Ethertype used for Q-in-Q frames"; } } // container tunneling } // container dot1q container mac-accounting { description "Start per MAC address accounting on the interface"; container ingress { presence "Indicates a ingress node is configured."; description "Enable accounting on ingress direction"; } // container ingress container egress { presence "Indicates a egress node is configured."; description "Enable accounting on egress direction"; } // container egress } // container mac-accounting container vlan-switched { description "Enable vlan-switched on this interface"; container trunk { description "Enable vlan-switched on trunk port"; container dot1q { description "IEEE 802.1Q VLAN-tagged packets"; leaf vlan-ranges { type xr:Cisco-ios-xr-string { length "1..1024"; } must "not(../../dot1ad/vlan-ranges) and not(../../../access)"; description "List of VLAN Ranges in the form a-b,c,d,e-f,g"; } } // container dot1q container dot1ad { description "IEEE 802.1ad VLAN-tagged packets"; leaf vlan-ranges { type xr:Cisco-ios-xr-string { length "1..1024"; } must "not(../../dot1q/vlan-ranges) and not(../../../access)"; description "List of VLAN Ranges in the form a-b,c,d,e-f,g"; } } // container dot1ad } // container trunk leaf access { type uint32 { range "1..4094"; } must "not(../trunk/dot1q/vlan-ranges) and not(../trunk/dot1ad/vlan-ranges)"; description "Enable vlan-switched on access port"; } } // container vlan-switched container flow { if-feature netflow_if_supported; description "Netflow configuration"; container ipv4 { description "IPV4 netflow configuration"; container monitor { description "Specify a flow monitor for packets"; container ingress-monitors { description "Apply flow monitor on incoming packets"; list ingress-monitor { key "monitor-map-name"; description "Specify a flow monitor for packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } } // list ingress-monitor } // container ingress-monitors container ingress-monitor-samplers { description "Specify a flow monitor and sampler for incoming packets"; list ingress-monitor-sampler { key "monitor-map-name sampler-map-name"; description "Specify a flow monitor and sampler for incoming packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } leaf sampler-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a sampler for packets"; } } // list ingress-monitor-sampler } // container ingress-monitor-samplers container egress-monitors { description "Apply flow monitor on outgoing packets"; list egress-monitor { key "monitor-map-name"; description "Specify a flow monitor for packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } } // list egress-monitor } // container egress-monitors container egress-monitor-samplers { description "Specify a flow monitor and sampler for outgoing packets"; list egress-monitor-sampler { key "monitor-map-name sampler-map-name"; description "Specify a flow monitor and sampler for outgoing packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } leaf sampler-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a sampler for packets"; } } // list egress-monitor-sampler } // container egress-monitor-samplers } // container monitor } // container ipv4 container mpls { if-feature netflow_pd_allow_mpls_kw; description "MPLS netflow configuration"; container monitor { description "Specify a flow monitor for packets"; container ingress-monitors { description "Apply flow monitor on incoming packets"; list ingress-monitor { key "monitor-map-name"; description "Specify a flow monitor for packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } } // list ingress-monitor } // container ingress-monitors container ingress-monitor-samplers { description "Specify a flow monitor and sampler for incoming packets"; list ingress-monitor-sampler { key "monitor-map-name sampler-map-name"; description "Specify a flow monitor and sampler for incoming packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } leaf sampler-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a sampler for packets"; } } // list ingress-monitor-sampler } // container ingress-monitor-samplers container egress-monitors { description "Apply flow monitor on outgoing packets"; list egress-monitor { key "monitor-map-name"; description "Specify a flow monitor for packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } } // list egress-monitor } // container egress-monitors container egress-monitor-samplers { description "Specify a flow monitor and sampler for outgoing packets"; list egress-monitor-sampler { key "monitor-map-name sampler-map-name"; description "Specify a flow monitor and sampler for outgoing packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } leaf sampler-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a sampler for packets"; } } // list egress-monitor-sampler } // container egress-monitor-samplers } // container monitor } // container mpls container ipv6 { if-feature netflow_pd_allow_ipv6_kw; description "IPV6 netflow configuration"; container monitor { description "Specify a flow monitor for packets"; container ingress-monitors { description "Apply flow monitor on incoming packets"; list ingress-monitor { key "monitor-map-name"; description "Specify a flow monitor for packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } } // list ingress-monitor } // container ingress-monitors container ingress-monitor-samplers { description "Specify a flow monitor and sampler for incoming packets"; list ingress-monitor-sampler { key "monitor-map-name sampler-map-name"; description "Specify a flow monitor and sampler for incoming packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } leaf sampler-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a sampler for packets"; } } // list ingress-monitor-sampler } // container ingress-monitor-samplers container egress-monitors { description "Apply flow monitor on outgoing packets"; list egress-monitor { key "monitor-map-name"; description "Specify a flow monitor for packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } } // list egress-monitor } // container egress-monitors container egress-monitor-samplers { description "Specify a flow monitor and sampler for outgoing packets"; list egress-monitor-sampler { key "monitor-map-name sampler-map-name"; description "Specify a flow monitor and sampler for outgoing packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } leaf sampler-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a sampler for packets"; } } // list egress-monitor-sampler } // container egress-monitor-samplers } // container monitor } // container ipv6 container datalinkframesection { if-feature netflow_pd_allow_sectiondata_kw; description "Data link section netflow configuration"; container monitor { description "Specify a flow monitor for packets"; container ingress-monitors { description "Apply flow monitor on incoming packets"; list ingress-monitor { key "monitor-map-name"; description "Specify a flow monitor for packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } } // list ingress-monitor } // container ingress-monitors container ingress-monitor-samplers { description "Specify a flow monitor and sampler for incoming packets"; list ingress-monitor-sampler { key "monitor-map-name sampler-map-name"; description "Specify a flow monitor and sampler for incoming packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } leaf sampler-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a sampler for packets"; } } // list ingress-monitor-sampler } // container ingress-monitor-samplers container egress-monitors { description "Apply flow monitor on outgoing packets"; list egress-monitor { key "monitor-map-name"; description "Specify a flow monitor for packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } } // list egress-monitor } // container egress-monitors container egress-monitor-samplers { description "Specify a flow monitor and sampler for outgoing packets"; list egress-monitor-sampler { key "monitor-map-name sampler-map-name"; description "Specify a flow monitor and sampler for outgoing packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } leaf sampler-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a sampler for packets"; } } // list egress-monitor-sampler } // container egress-monitor-samplers } // container monitor } // container datalinkframesection container map-t { if-feature nf_parser_verify_wrapper_allow_intf_mapt_kw; description "Map-t netflow configuration"; container monitor { description "Specify a flow monitor for packets"; container ingress-monitors { description "Apply flow monitor on incoming packets"; list ingress-monitor { key "monitor-map-name"; description "Specify a flow monitor for packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } } // list ingress-monitor } // container ingress-monitors container ingress-monitor-samplers { description "Specify a flow monitor and sampler for incoming packets"; list ingress-monitor-sampler { key "monitor-map-name sampler-map-name"; description "Specify a flow monitor and sampler for incoming packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } leaf sampler-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a sampler for packets"; } } // list ingress-monitor-sampler } // container ingress-monitor-samplers container egress-monitors { description "Apply flow monitor on outgoing packets"; list egress-monitor { key "monitor-map-name"; description "Specify a flow monitor for packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } } // list egress-monitor } // container egress-monitors container egress-monitor-samplers { description "Specify a flow monitor and sampler for outgoing packets"; list egress-monitor-sampler { key "monitor-map-name sampler-map-name"; description "Specify a flow monitor and sampler for outgoing packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } leaf sampler-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a sampler for packets"; } } // list egress-monitor-sampler } // container egress-monitor-samplers } // container monitor } // container map-t } // container flow container mpls { description "MPLS interface subcommands"; leaf mtu { type uint32 { range "68..65535"; } description "Set the MPLS MTU for the interface"; } container label-security { description "MPLS label-security for the interface"; container rpf { presence "Indicates a rpf node is configured."; description "MPLS RPF for incoming packets"; } // container rpf container multi-label-packet { description "Handling incoming packets with multiple labels on the stack"; container drop { presence "Indicates a drop node is configured."; description "Drop packets with multiple labels on the stack"; } // container drop } // container multi-label-packet } // container label-security } // container mpls container host-routing { tailf:dependency "../a1:interface-name"; when "../a1:interface-name[starts-with(text(),'BVI')]"; presence "Indicates a host-routing node is configured."; description "Enable host-routing on this interface"; } // container host-routing container gratuitous-announcement-timer { presence "Indicates a gratuitous-announcement-timer node is configured."; description "Enable gratuitous announcement (GARP) timer on this interface"; leaf interval { type uint32 { range "60..30000"; } description "Gratuitous announcement (GARP/NA) timer interval in seconds"; } leaf jitter { type uint32 { range "0..100"; } description "Gratuitous announcement (GARP/NA) timer jitter percentage"; } } // container gratuitous-announcement-timer container pw-ether { tailf:dependency "../a1:interface-name"; when "../a1:interface-name[starts-with(text(),'PW-Ether')]"; description "Configuration for pw-ether interface"; container attach { description "Attach to an interface list"; leaf generic-interface-list { type xr:Cisco-ios-xr-string { length "1..32"; } description "Interface List"; } } // container attach leaf l2overhead { type uint32 { range "1..64"; } description "Set Layer 2 Overhead size"; } } // container pw-ether container pw-iw { tailf:dependency "../a1:interface-name"; when "../a1:interface-name[starts-with(text(),'PW-IW')]"; description "Configuration for pw-iw interface"; container attach { description "Attach to an interface list"; leaf generic-interface-list { type xr:Cisco-ios-xr-string { length "1..32"; } description "Interface List"; } } // container attach leaf l2overhead { type uint32 { range "1..64"; } description "Set Layer 2 Overhead size"; } } // container pw-iw container arp { description "Configure Address Resolution Protocol"; leaf timeout { type uint32 { range "30..2144448000"; } description "Set ARP cache timeout"; } leaf purge-delay { type uint32 { range "1..65535"; } description "Delay purging ARP entries when the interface goes down"; } container learning { description "Configuration for dynamic learning of ARP entries"; container disable { presence "Indicates a disable node is configured."; description "Disable dynamic learning of ARP entries"; } // container disable container local { presence "Indicates a local node is configured."; description "Enable dynamic learning only for local subnet only"; } // container local container solicited { presence "Indicates a solicited node is configured."; description "Enable dynamic learning only for solicited ARP packets"; } // container solicited } // container learning container gratuitous { description "Configure the handling of Gratuitous ARP packets"; container ignore { presence "Indicates a ignore node is configured."; description "Ignore the receipt of Gratuitous ARP packets"; } // container ignore } // container gratuitous container drop-adjacency { if-feature drop-adjacency; description "Set ARP drop adjacency timeout"; leaf timeout { type uint32 { range "900..7200"; } default "3600"; description "Specify timeout"; } } // container drop-adjacency } // container arp container proxy-arp { presence "Indicates a proxy-arp node is configured."; description "Enable proxy ARP"; } // container proxy-arp container local-proxy-arp { presence "Indicates a local-proxy-arp node is configured."; description "Enable local proxy ARP"; } // container local-proxy-arp container affinity { tailf:dependency "../a2:interface-name"; when "../a2:interface-name[starts-with(text(),'tunnel-te')]"; description "Link attributes for links traversed by tunnel"; container includes { description "Links with all these attributes are included in path calculation"; list include1 { key "name1"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include1 list include2 { key "name1 name2"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include2 list include3 { key "name1 name2 name3"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include3 list include4 { key "name1 name2 name3 name4"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include4 list include5 { key "name1 name2 name3 name4 name5"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include5 list include6 { key "name1 name2 name3 name4 name5 name6"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name6 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include6 list include7 { key "name1 name2 name3 name4 name5 name6 name7"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name6 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name7 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include7 list include8 { key "name1 name2 name3 name4 name5 name6 name7 name8"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name6 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name7 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name8 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include8 list include9 { key "name1 name2 name3 name4 name5 name6 name7 name8 name9"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name6 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name7 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name8 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name9 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include9 list include10 { key "name1 name2 name3 name4 name5 name6 name7 name8 name9 name10"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name6 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name7 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name8 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name9 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name10 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include10 } // container includes container include-stricts { description "Links with exactly all these attributes are included in path calculation"; list include1 { key "name1"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include1 list include2 { key "name1 name2"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include2 list include3 { key "name1 name2 name3"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include3 list include4 { key "name1 name2 name3 name4"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include4 list include5 { key "name1 name2 name3 name4 name5"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include5 list include6 { key "name1 name2 name3 name4 name5 name6"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name6 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include6 list include7 { key "name1 name2 name3 name4 name5 name6 name7"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name6 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name7 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include7 list include8 { key "name1 name2 name3 name4 name5 name6 name7 name8"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name6 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name7 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name8 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include8 list include9 { key "name1 name2 name3 name4 name5 name6 name7 name8 name9"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name6 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name7 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name8 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name9 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include9 list include10 { key "name1 name2 name3 name4 name5 name6 name7 name8 name9 name10"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name6 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name7 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name8 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name9 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name10 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include10 } // container include-stricts container excludes { description "Links with all these attributes are excluded from path calculation"; list exclude1 { key "name1"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list exclude1 list exclude2 { key "name1 name2"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list exclude2 list exclude3 { key "name1 name2 name3"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list exclude3 list exclude4 { key "name1 name2 name3 name4"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list exclude4 list exclude5 { key "name1 name2 name3 name4 name5"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list exclude5 list exclude6 { key "name1 name2 name3 name4 name5 name6"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name6 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list exclude6 list exclude7 { key "name1 name2 name3 name4 name5 name6 name7"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name6 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name7 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list exclude7 list exclude8 { key "name1 name2 name3 name4 name5 name6 name7 name8"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name6 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name7 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name8 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list exclude8 list exclude9 { key "name1 name2 name3 name4 name5 name6 name7 name8 name9"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name6 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name7 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name8 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name9 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list exclude9 list exclude10 { key "name1 name2 name3 name4 name5 name6 name7 name8 name9 name10"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name6 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name7 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name8 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name9 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name10 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list exclude10 } // container excludes container exclude-all { presence "Indicates a exclude-all node is configured."; description "Links with any attribute are excluded from path calculation"; } // container exclude-all container ignore { presence "Indicates a ignore node is configured."; description "All links are included in path calculation regardless of attributes"; } // container ignore leaf affinity-attribute-value { type uint32 { range "0..4294967295"; } description "Affinity attribute value"; } leaf mask { type uint32 { range "0..4294967295"; } description "Affinity attribute mask value"; } } // container affinity container autoroute { tailf:dependency "../a2:interface-name"; when "../a2:interface-name[starts-with(text(),'tunnel-te')]"; description "Parameters for IGP routing over tunnel"; container announce { presence "Indicates a announce node is configured."; description "Announce tunnel to IGP"; container metric { description "Specify MPLS tunnel metric"; leaf absolute { type uint32 { range "1..2147483647"; } description "Set metric mode absolute"; } leaf relative { type int32 { range "-10..10"; } description "Set metric mode relative"; } leaf constant-metric { type uint32 { range "1..2147483647"; } description "Set constant metric"; } } // container metric container include-ipv6 { presence "Indicates a include-ipv6 node is configured."; description "Announce tunnel as an IPv6 AA also"; } // container include-ipv6 container exclude-traffic { description "Exclude the type of traffic that goes through AA"; container segment-routing { presence "Indicates a segment-routing node is configured."; description "Exclude segment-routing traffic from the autoroute announced tunnel"; } // container segment-routing } // container exclude-traffic } // container announce container destinations { description "Adds static route to destination"; list destination { key "address"; description "Adds static route to destination"; leaf address { type inet:ipv4-address-no-zone; description "Adds static route to destination"; } } // list destination } // container destinations } // container autoroute container backup-bw { tailf:dependency "../a2:interface-name"; when "../a2:interface-name[starts-with(text(),'tunnel-te')]"; must "(bandwidth) or ((pool-type or class-type) and (bandwidth or unlimited))"; presence "Indicates a backup-bw node is configured."; description "Fast-reroute backup bandwidth requirement"; leaf pool-type { type enumeration { enum "any-pool" { value 1; description "default/any-pool bandwidth"; } enum "global-pool" { value 2; description "global-pool bandwidth"; } enum "sub-pool" { value 4; description "sub-pool bandwidth"; } } must "not(../class-type)"; description "Configure pool type for backup bandwidth"; } leaf class-type { type enumeration { enum "0" { value 0; description "class type 0"; } enum "1" { value 1; description "class type 1"; } enum "any" { value 9; description "any class type"; } } must "not(../pool-type)"; description "Specify the bandwidth class type"; } leaf bandwidth { type uint32 { range "1..4294967295"; } must "not(../unlimited)"; description "Bandwidth requirement in kbps"; } container unlimited { must "not(../bandwidth)"; presence "Indicates a unlimited node is configured."; description "Unlimited backup bandwidth"; } // container unlimited } // container backup-bw container signalled-bandwidth { tailf:dependency "../a2:interface-name"; when "../a2:interface-name[starts-with(text(),'tunnel-te')]"; must "not(class-type and sub-pool)"; presence "Indicates a signalled-bandwidth node is configured."; description "Tunnel bandwidth requirement to be signalled"; leaf bandwidth { type uint32 { range "0..4294967295"; } mandatory true; description "Bandwidth requirement in kbps"; } leaf class-type { type uint32 { range "0..1"; } description "Specify the bandwidth class type"; } container sub-pool { when "../bandwidth != 0"; presence "Indicates a sub-pool node is configured."; description "Specify sub-pool bandwidth"; } // container sub-pool } // container signalled-bandwidth container fast-reroute { tailf:dependency "../a2:interface-name"; when "../a2:interface-name[starts-with(text(),'tunnel-te')]"; presence "Indicates a fast-reroute node is configured."; description "Specify MPLS tunnel can be fast-rerouted"; container protect { description "Enable protection request"; container node { presence "Indicates a node node is configured."; description "Enable node protection request"; } // container node container bandwidth { presence "Indicates a bandwidth node is configured."; description "Enable bandwidth protection request"; } // container bandwidth } // container protect } // container fast-reroute leaf forward-class { tailf:dependency "../a2:interface-name"; when "../a2:interface-name[starts-with(text(),'tunnel-te')]"; type uint32 { range "0..7"; } description "Forward class for the tunnel (default value 0)"; } container forwarding-adjacency { tailf:dependency "../a2:interface-name"; when "../a2:interface-name[starts-with(text(),'tunnel-te')]"; presence "Indicates a forwarding-adjacency node is configured."; description "Enable tunnel as a forwarding-adjacency and enter its submode"; leaf holdtime { type uint32 { range "0..20000"; } description "Hold time in ms"; } container include-ipv6 { presence "Indicates a include-ipv6 node is configured."; description "Announce tunnel as an IPv6 FA also"; } // container include-ipv6 } // container forwarding-adjacency leaf load-share { tailf:dependency "../a2:interface-name"; when "../a2:interface-name[starts-with(text(),'tunnel-te')]"; type uint32 { range "1..4294967295"; } description "Specify tunnel load-sharing metric"; } container logging { tailf:dependency "../a2:interface-name"; when "../a2:interface-name[starts-with(text(),'tunnel-te')]"; description "Per-interface logging configuration"; container events { description "Per-interface logging events"; container lsp-status { description "Enable interface LSP state change alarms"; container state { presence "Indicates a state node is configured."; description "Enable interface LSP UP/DOWN change alarms"; } // container state container reoptimize { presence "Indicates a reoptimize node is configured."; description "Enable interface LSP REOPT change alarms"; } // container reoptimize container reoptimize-attempts { presence "Indicates a reoptimize-attempts node is configured."; description "Enable interface LSP REOPT attempts change alarms"; } // container reoptimize-attempts container bw-change { presence "Indicates a bw-change node is configured."; description "Enable interface LSP BANDWIDTH change alarms"; } // container bw-change container reroute { presence "Indicates a reroute node is configured."; description "Enable interface LSP REROUTE change alarms"; } // container reroute container record-route { presence "Indicates a record-route node is configured."; description "Enable interface LSP RECORD-ROUTE change alarms"; } // container record-route container switchover { presence "Indicates a switchover node is configured."; description "Enable interface LSP SWITCHOVER change alarms"; } // container switchover container insufficient-bandwidth { presence "Indicates a insufficient-bandwidth node is configured."; description "Enable Syslog for setup/reopt failure due to bandwidth"; } // container insufficient-bandwidth } // container lsp-status container pcalc-failure { presence "Indicates a pcalc-failure node is configured."; description "Enable logging for path calculation failures"; } // container pcalc-failure container bfd-status { presence "Indicates a bfd-status node is configured."; description "Enable BFD session state change alarms"; } // container bfd-status container all { presence "Indicates a all node is configured."; description "Enable all logging for this tunnel"; } // container all } // container events } // container logging leaf signalled-name { tailf:dependency "../a2:interface-name"; when "../a2:interface-name[starts-with(text(),'tunnel-te')]"; type xr:Cisco-ios-xr-string { length "1..254"; } description "The signaling name to assign to tunnel"; } container path-options { tailf:dependency "../a2:interface-name"; when "../a2:interface-name[starts-with(text(),'tunnel-te')]"; description "Primary or fallback path setup option"; list path-option { key "preference"; description "Primary or fallback path setup option"; leaf preference { type uint32 { range "1..1000"; } description "Preference for this path option"; } container dynamic { presence "Indicates a dynamic node is configured."; description "Setup based on dynamically allocated path"; } // container dynamic container explicit { must "identifier or name"; presence "Indicates a explicit node is configured."; description "Setup based on preconfigured path"; leaf identifier { type uint32 { range "1..65535"; } description "Specify an IP explicit path by number"; } leaf name { type xr:Cisco-ios-xr-string { length "1..1024"; } description "Specify an IP explicit path by name"; } container verbatim { presence "Indicates a verbatim node is configured."; description "Do not require topology database for explicit path"; } // container verbatim } // container explicit container ospf { presence "Indicates a ospf node is configured."; description "Limit CSPF to a single OSPF instance and area"; leaf instance-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "OSPF instance name"; } container area { description "OSPF area"; leaf decimal { type uint32 { range "0..4294967295"; } description "OSPF area ID as a decimal value"; } leaf ip-address { type inet:ipv4-address-no-zone; description "OSPF area ID in IP address format"; } } // container area } // container ospf container isis { presence "Indicates a isis node is configured."; description "Limit CSPF to a single IS-IS instance and area"; leaf instance-name { type xr:Cisco-ios-xr-string { length "1..40"; } description "IS-IS instance name"; } leaf level { type uint32 { range "1..2"; } must "../instance-name"; description "IS-IS level"; } } // container isis container attribute-set { description "Attribute set for this LSP"; leaf attribute-set-name { type xr:Cisco-ios-xr-string { length "1..64"; } description "Specify attribute-set name (max 64 char)"; } } // container attribute-set container protected-by { description "Path protection using a specific path-option"; leaf index { type uint32 { range "1..1000"; } description "Index of the protecting path-option"; } } // container protected-by container lockdown { presence "Indicates a lockdown node is configured."; description "Not a candidate for reoptimization"; container sticky { presence "Indicates a sticky node is configured."; description "Force tunnel to remain on the same path"; } // container sticky } // container lockdown } // list path-option } // container path-options container priority { tailf:dependency "../a2:interface-name"; when "../a2:interface-name[starts-with(text(),'tunnel-te')]"; presence "Indicates a priority node is configured."; description "Tunnel priority"; leaf setup-priority { type uint32 { range "0..7"; } mandatory true; description "Tunnel priority"; } leaf hold-priority { type uint32 { range "0..7"; } mandatory true; description "Hold Priority"; } } // container priority container record-route { tailf:dependency "../a2:interface-name"; when "../a2:interface-name[starts-with(text(),'tunnel-te')]"; presence "Indicates a record-route node is configured."; description "Record the route used by the tunnel"; } // container record-route container binding-sid { tailf:dependency "../a2:interface-name"; when "../a2:interface-name[starts-with(text(),'tunnel-te')]"; description "Binding Segment Identifier"; container mpls { presence "Indicates a mpls node is configured."; description "Use MPLS label as binding segment identifier"; leaf label { type uint32 { range "16..4015"; } description "Specify label value"; } } // container mpls } // container binding-sid container policy-class { tailf:dependency "../a2:interface-name"; when "../a2:interface-name[starts-with(text(),'tunnel-te')]"; description "Specify classs for policy-based tunnel selection"; container tunnel-policy-class-values { description "Tunnel policy class Value(s)"; leaf-list tunnel-policy-class-value { type policy-class-type; max-elements 7; description "Tunnel policy class Value(s)"; } } // container tunnel-policy-class-values } // container policy-class container auto-bw { tailf:dependency "../a2:interface-name"; when "../a2:interface-name[starts-with(text(),'tunnel-te')]"; presence "Indicates a auto-bw node is configured."; description "Enable tunnel auto-bandwidth and enter its submode"; leaf application { type uint32 { range "5..10080"; } description "Set the tunnel auto-bw application frequency"; } container bw-limit { description "Set min/max bandwidth auto-bw can apply on a tunnel"; leaf min { type uint32 { range "0..4294967295"; } description "Set minimum bandwidth auto-bw can apply on a tunnel"; } leaf max { type uint32 { range "0..4294967295"; } description "Set maximum bandwidth auto-bw can apply on a tunnel"; } } // container bw-limit container collect-bw-only { presence "Indicates a collect-bw-only node is configured."; description "Enable bandwidth collection only, no auto-bw adjustment"; } // container collect-bw-only container adjustment-threshold { presence "Indicates a adjustment-threshold node is configured."; description "Set the bandwidth change threshold to trigger adjustment"; leaf threshold { type uint32 { range "1..100"; } mandatory true; description "Set the bandwidth change threshold to trigger adjustment"; } leaf min { type uint32 { range "10..4294967295"; } mandatory true; description "Set the bandwidth change value to trigger adjustment"; } } // container adjustment-threshold container overflow { presence "Indicates a overflow node is configured."; description "Configuring the tunnel overflow detection"; leaf threshold { type uint32 { range "1..100"; } mandatory true; description "Set the bandwidth change percent to trigger an overflow"; } leaf min { type uint32 { range "10..4294967295"; } mandatory true; description "Set the bandwidth change value to trigger an overflow"; } leaf limit { type uint32 { range "1..10"; } mandatory true; description "Set the number of consecutive collections exceeding threshold"; } } // container overflow container underflow { presence "Indicates a underflow node is configured."; description "Configuring the tunnel underflow detection"; leaf threshold { type uint32 { range "1..100"; } mandatory true; description "Set the bandwidth change percent to trigger an underflow"; } leaf min { type uint32 { range "10..4294967295"; } mandatory true; description "Set the bandwidth change value to trigger an underflow"; } leaf limit { type uint32 { range "1..10"; } mandatory true; description "Set the number of consecutive collections exceeding threshold"; } } // container underflow container resignal { description "Configure the tunnel resignal parameters after going down"; container last-bandwidth { description "Configure the tunnel to use last applied bandwidth after going down"; leaf time-out { type uint32 { range "1..3600000"; } description "Set the bandwidth resignal time-out value (in seconds) After this time the tunnel will be signaled with the configured bandwidth"; } } // container last-bandwidth } // container resignal } // container auto-bw container path-protection { tailf:dependency "../a2:interface-name"; when "../a2:interface-name[starts-with(text(),'tunnel-te')]"; presence "Indicates a path-protection node is configured."; description "Enable the path protection feature on this tunnel"; container srlg-diverse { presence "Indicates a srlg-diverse node is configured."; description "Enforce SRLG diversity for protecting LSP"; } // container srlg-diverse container protection-mode { description "Configure Path Protection mode"; container non-revertive { presence "Indicates a non-revertive node is configured."; description "Enable Non-Revertive mode"; } // container non-revertive } // container protection-mode } // container path-protection container soft-preemption { tailf:dependency "../a2:interface-name"; when "../a2:interface-name[starts-with(text(),'tunnel-te')]"; presence "Indicates a soft-preemption node is configured."; description "Enable the soft-preemption feature on this tunnel"; } // container soft-preemption container delay-measurement { tailf:dependency "../a2:interface-name"; when "../a2:interface-name[starts-with(text(),'tunnel-te')]"; presence "Indicates a delay-measurement node is configured."; description "Enable the delay-measurement feature on this tunnel"; } // container delay-measurement container pce { tailf:dependency "../a2:interface-name"; when "../a2:interface-name[starts-with(text(),'tunnel-te')]"; description "Config PCE parameters"; container delegation { presence "Indicates a delegation node is configured."; description "Enable PCE delegation"; } // container delegation container reopt { must "../delegation"; presence "Indicates a reopt node is configured."; description "Enable local reopt for PCE delegation"; } // container reopt } // container pce container path-selection { tailf:dependency "../a2:interface-name"; when "../a2:interface-name[starts-with(text(),'tunnel-te')]"; description "Path Selection Configuration"; container metric { must "igp or te or delay"; presence "Indicates a metric node is configured."; description "Metric Type for path calculation"; container igp { presence "Indicates a igp node is configured."; description "Use IGP metric"; } // container igp container te { presence "Indicates a te node is configured."; description "Use TE metric"; } // container te container delay { presence "Indicates a delay node is configured."; description "Use delay metric"; } // container delay } // container metric container tiebreaker { must "min-fill or max-fill or random"; presence "Indicates a tiebreaker node is configured."; description "Equal cost multipath tiebreaker for path calculation (default: min-fill)."; container min-fill { presence "Indicates a min-fill node is configured."; description "Prefer the path with the least-utilized links"; } // container min-fill container max-fill { presence "Indicates a max-fill node is configured."; description "Prefer the path with the most-utilized links"; } // container max-fill container random { presence "Indicates a random node is configured."; description "Prefer a path with links utilized randomly"; } // container random } // container tiebreaker leaf hop-limit { type uint32 { range "1..255"; } description "Hop limit configuration"; } leaf cost-limit { type uint32 { range "1..4294967295"; } description "Cost limit configuration"; } leaf delay-limit { type uint32 { range "1..4294967295"; } description "Delay limit configuration"; } } // container path-selection container bidirectional { tailf:dependency "../a2:interface-name"; when "../a2:interface-name[starts-with(text(),'tunnel-te')]"; presence "Indicates a bidirectional node is configured."; description "Configure bidirectional LSPs"; container association { description "Specify association parameters"; container id { presence "Indicates a id node is configured."; description "Unique association ID"; leaf association-id { type uint32 { range "0..65535"; } mandatory true; description "Unique association ID"; } leaf source-address { type inet:ipv4-address-no-zone; mandatory true; description "Source IP address"; } leaf global-id { type uint32 { range "0..4294967295"; } description "Global ID for association global source"; } } // container id container type { description "Association type"; container co-routed { presence "Indicates a co-routed node is configured."; description "Co-routed LSPs (with bidirectional CSPF)"; container fault-oam { presence "Indicates a fault-oam node is configured."; description "Enable fault OAM"; } // container fault-oam container wrap-protection { presence "Indicates a wrap-protection node is configured."; description "Enable LSP Wrap protection feature"; } // container wrap-protection container signaling { description "Signaling configuration"; container protection-object { description "RSVP Protection Object signaling"; container disable { presence "Indicates a disable node is configured."; description "Disable signaling of RSVP Protection Object"; } // container disable } // container protection-object } // container signaling } // container co-routed } // container type } // container association } // container bidirectional container working-lsp { tailf:dependency "../a2:interface-name"; when "../a2:interface-name[starts-with(text(),'tunnel-tp')]"; description "Working LSP"; leaf in-label { type uint32 { range "16..1048575"; } description "Incoming MPLS label"; } leaf out-label { type uint32 { range "16..1048575"; } description "Outgoing MPLS label"; } leaf out-link { type uint32 { range "1..65535"; } must "../out-label"; description "Outgoing TP link ID"; } leaf lsp-number { type uint32 { range "0..65535"; } description "LSP Identifier"; } container lockout { presence "Indicates a lockout node is configured."; description "Lockout working LSP"; } // container lockout } // container working-lsp leaf destination { tailf:dependency "../a2:interface-name"; when "../a2:interface-name[starts-with(text(),'tunnel-te')]"; type inet:ipv4-address-no-zone; description "Specify tunnel destination"; } container tunnel-mte { tailf:dependency "../a2:interface-name"; when "../a2:interface-name[starts-with(text(),'tunnel-mte')]"; description "Configuratoin specific for tunnel-mte interface"; container destinations { description "Specify a destination to an endpoint of the tunnel"; list destination { key "address"; description "Specify a destination to an endpoint of the tunnel"; leaf address { type inet:ipv4-address-no-zone; description "Specify a destination to an endpoint of the tunnel"; } container path-options { description "Primary or fallback path setup option"; list path-option { must "dynamic or explicit/identifier or explicit/name"; key "path-option-id"; description "Primary or fallback path setup option"; leaf path-option-id { type uint32 { range "1..1000"; } description "Primary or fallback path setup option"; } container dynamic { presence "Indicates a dynamic node is configured."; description "Setup based on dynamically allocated path"; } // container dynamic container explicit { description "Setup based on preconfigured path"; leaf identifier { type uint32 { range "1..65535"; } must "not(../name)"; description "Specify an IP explicit path by number"; } leaf name { type xr:Cisco-ios-xr-string { length "1..800"; } must "not(../identifier)"; description "Specify an IP explicit path by name"; } } // container explicit container lockdown { must "../dynamic or ../explicit/identifier or ../explicit/name"; presence "Indicates a lockdown node is configured."; description "Not a candidate for reoptimization"; } // container lockdown container verbatim { must "../explicit/identifier or ../explicit/name"; presence "Indicates a verbatim node is configured."; description "Do not require topology database for explicit path"; } // container verbatim } // list path-option } // container path-options container logging { description "Per-destination logging configuration"; container events { description "Per-destination logging events"; container sub-lsp { description "Enable destination sub-lsp state change alarms"; container state { presence "Indicates a state node is configured."; description "Enable destination sub-lsp UP/DOWN change alarms"; } // container state container reroute { presence "Indicates a reroute node is configured."; description "Enable destination sub-lsp REROUTE change alarms"; } // container reroute container insufficient-bandwidth { presence "Indicates a insufficient-bandwidth node is configured."; description "Enable Syslog for setup/reopt failure due to bandwidth"; } // container insufficient-bandwidth container pcalc-failure { presence "Indicates a pcalc-failure node is configured."; description "Enable logging for path calculation failures"; } // container pcalc-failure } // container sub-lsp } // container events } // container logging container disable { presence "Indicates a disable node is configured."; description "Disable the given destination"; } // container disable } // list destination } // container destinations container priority { presence "Indicates a priority node is configured."; description "Tunnel priority"; leaf setup-priority { type uint32 { range "0..7"; } mandatory true; description "Tunnel priority"; } leaf hold-priority { type uint32 { range "0..7"; } mandatory true; description "Hold Priority"; } } // container priority container logging { description "Per-interface logging configuration"; container events { description "Per-interface logging events"; container lsp-status { description "Enable interface LSP state change alarms"; container state { presence "Indicates a state node is configured."; description "Enable interface LSP UP/DOWN change alarms"; } // container state container reoptimize-attempts { presence "Indicates a reoptimize-attempts node is configured."; description "Enable interface LSP REOPT attempts change alarms"; } // container reoptimize-attempts container reoptimize { presence "Indicates a reoptimize node is configured."; description "Enable interface LSP REOPT change alarms"; } // container reoptimize container reroute { presence "Indicates a reroute node is configured."; description "Enable interface LSP REROUTE change alarms"; } // container reroute container insufficient-bandwidth { presence "Indicates a insufficient-bandwidth node is configured."; description "Enable Syslog for setup/reopt failure due to bandwidth"; } // container insufficient-bandwidth container bw-change { presence "Indicates a bw-change node is configured."; description "Enable interface LSP BANDWIDTH change notification"; } // container bw-change } // container lsp-status container pcalc-failure { presence "Indicates a pcalc-failure node is configured."; description "Enable logging for path calculation failures"; } // container pcalc-failure container sub-lsp-status { description "Enable all sub-LSP state change alarms"; container state { presence "Indicates a state node is configured."; description "Enable all sub-LSP UP/DOWN change alarms"; } // container state } // container sub-lsp-status container all { presence "Indicates a all node is configured."; description "Enable all logging for this tunnel"; } // container all } // container events } // container logging leaf signalled-name { type xr:Cisco-ios-xr-string { length "1..254"; } description "The signaling name to assign to tunnel"; } container signalled-bandwidth { presence "Indicates a signalled-bandwidth node is configured."; description "Tunnel bandwidth requirement to be signalled"; leaf bandwidth { type uint32 { range "0..4294967295"; } mandatory true; description "Bandwidth requirement in kbps"; } leaf class-type { type uint32 { range "0..1"; } must "not(../sub-pool)"; description "Specify the bandwidth class type"; } container sub-pool { when "../bandwidth != 0"; must "not(../class-type)"; presence "Indicates a sub-pool node is configured."; description "Specify sub-pool bandwidth"; } // container sub-pool } // container signalled-bandwidth container fast-reroute { presence "Indicates a fast-reroute node is configured."; description "Specify MPLS tunnel can be fast-rerouted"; } // container fast-reroute container record-route { presence "Indicates a record-route node is configured."; description "Record the route used by the tunnel"; } // container record-route container affinity { description "Link attributes for links traversed by tunnel"; container includes { description "Links with all these attributes are included in path calculation"; list include1 { key "name1"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include1 list include2 { key "name1 name2"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include2 list include3 { key "name1 name2 name3"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include3 list include4 { key "name1 name2 name3 name4"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include4 list include5 { key "name1 name2 name3 name4 name5"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include5 list include6 { key "name1 name2 name3 name4 name5 name6"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name6 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include6 list include7 { key "name1 name2 name3 name4 name5 name6 name7"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name6 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name7 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include7 list include8 { key "name1 name2 name3 name4 name5 name6 name7 name8"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name6 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name7 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name8 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include8 list include9 { key "name1 name2 name3 name4 name5 name6 name7 name8 name9"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name6 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name7 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name8 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name9 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include9 list include10 { key "name1 name2 name3 name4 name5 name6 name7 name8 name9 name10"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name6 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name7 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name8 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name9 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name10 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include10 } // container includes container include-stricts { description "Links with exactly all these attributes are included in path calculation"; list include1 { key "name1"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include1 list include2 { key "name1 name2"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include2 list include3 { key "name1 name2 name3"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include3 list include4 { key "name1 name2 name3 name4"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include4 list include5 { key "name1 name2 name3 name4 name5"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include5 list include6 { key "name1 name2 name3 name4 name5 name6"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name6 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include6 list include7 { key "name1 name2 name3 name4 name5 name6 name7"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name6 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name7 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include7 list include8 { key "name1 name2 name3 name4 name5 name6 name7 name8"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name6 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name7 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name8 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include8 list include9 { key "name1 name2 name3 name4 name5 name6 name7 name8 name9"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name6 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name7 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name8 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name9 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include9 list include10 { key "name1 name2 name3 name4 name5 name6 name7 name8 name9 name10"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name6 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name7 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name8 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name9 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name10 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list include10 } // container include-stricts container excludes { description "Links with all these attributes are excluded from path calculation"; list exclude1 { key "name1"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list exclude1 list exclude2 { key "name1 name2"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list exclude2 list exclude3 { key "name1 name2 name3"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list exclude3 list exclude4 { key "name1 name2 name3 name4"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list exclude4 list exclude5 { key "name1 name2 name3 name4 name5"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list exclude5 list exclude6 { key "name1 name2 name3 name4 name5 name6"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name6 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list exclude6 list exclude7 { key "name1 name2 name3 name4 name5 name6 name7"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name6 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name7 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list exclude7 list exclude8 { key "name1 name2 name3 name4 name5 name6 name7 name8"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name6 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name7 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name8 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list exclude8 list exclude9 { key "name1 name2 name3 name4 name5 name6 name7 name8 name9"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name6 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name7 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name8 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name9 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list exclude9 list exclude10 { key "name1 name2 name3 name4 name5 name6 name7 name8 name9 name10"; description "Link is excluded if it has every attribute in this list"; leaf name1 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name2 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name3 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name4 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name5 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name6 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name7 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name8 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name9 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } leaf name10 { type xr:Cisco-ios-xr-string { length "1..32"; } description "Link is excluded if it has every attribute in this list"; } } // list exclude10 } // container excludes container exclude-all { presence "Indicates a exclude-all node is configured."; description "Links with any attribute are excluded from path calculation"; } // container exclude-all container ignore { presence "Indicates a ignore node is configured."; description "All links are included in path calculation regardless of attributes"; } // container ignore leaf affinity-attribute-value { type uint32 { range "0..4294967295"; } must "../mask"; description "Affinity attribute value"; } leaf mask { type uint32 { range "0..4294967295"; } must "../affinity-attribute-value"; description "Affinity attribute mask value"; } } // container affinity container path-selection { description "Path Selection Configuration"; container metric { description "Metric Type for path calculation"; container igp { must "not(../te or ../delay)"; presence "Indicates a igp node is configured."; description "Use IGP metric"; } // container igp container te { must "not(../igp or ../delay)"; presence "Indicates a te node is configured."; description "Use TE metric"; } // container te container delay { must "not(../igp or ../te)"; presence "Indicates a delay node is configured."; description "Use delay metric"; } // container delay } // container metric } // container path-selection } // container tunnel-mte container monitor-sessions { description "Monitor-session configuration commands"; list monitor-session { must "ethernet or ipv4 or ipv6 or mpls-ipv4 or mpls-ipv6"; key "session-name"; description "Monitor-session configuration commands"; leaf session-name { type string { length "1..79"; } description "Monitor-session configuration commands"; } container ethernet { must "not(../ipv4 or ../ipv6 or ../mpls-ipv4 or ../mpls-ipv6)"; presence "Indicates a ethernet node is configured."; description "Replicate Ethernet traffic"; } // container ethernet container ipv4 { must "not(../ethernet or ../ipv6 or ../mpls-ipv4 or ../mpls-ipv6)"; presence "Indicates a ipv4 node is configured."; description "Replicate IPv4 traffic"; } // container ipv4 container ipv6 { must "not(../ipv4 or ../ethernet or ../mpls-ipv4 or ../mpls-ipv6)"; presence "Indicates a ipv6 node is configured."; description "Replicate IPv6 traffic"; } // container ipv6 container mpls-ipv4 { must "not(../ipv4 or ../ipv6 or ../ethernet or ../mpls-ipv6)"; presence "Indicates a mpls-ipv4 node is configured."; description "Replicate MPLS-IPv4 traffic"; } // container mpls-ipv4 container mpls-ipv6 { must "not(../ipv4 or ../ipv6 or ../mpls-ipv4 or ../ethernet)"; presence "Indicates a mpls-ipv6 node is configured."; description "Replicate MPLS-IPv6 traffic"; } // container mpls-ipv6 container direction { description "Specify the direction of traffic to replicate"; container rx-only { must "not(../tx-only)"; presence "Indicates a rx-only node is configured."; description "Replicate only received (ingress) traffic"; } // container rx-only container tx-only { must "not(../rx-only)"; presence "Indicates a tx-only node is configured."; description "Replicate only transmitted (egress) traffic"; } // container tx-only } // container direction container port-level { presence "Indicates a port-level node is configured."; description "Replicate traffic on all interfaces of a main interface"; } // container port-level container acl { presence "Indicates a acl node is configured."; description "Enable acl based mirroring"; leaf acl-name { type xr:Cisco-ios-xr-string { length "1..80"; } description "ACL name"; } } // container acl leaf acl-ipv4 { type xr:Cisco-ios-xr-string { length "1..80"; } description "Enable IPv4 ACL based mirroring"; } leaf acl-ipv6 { type xr:Cisco-ios-xr-string { length "1..80"; } description "Enable IPv6 ACL based mirroring"; } container mirror { description "Set the mirroring properties of this interface"; leaf first { type uint32 { range "1..10000"; } description "Enable mirroring on the first portion of a packet"; } leaf interval { type enumeration { enum "512" { value 1; description "Mirror 1 in every 512 packets"; } enum "1K" { value 2; description "Mirror 1 in every 1024 packets"; } enum "2K" { value 3; description "Mirror 1 in every 2048 packets"; } enum "4K" { value 4; description "Mirror 1 in every 4096 packets"; } enum "8K" { value 5; description "Mirror 1 in every 8192 packets"; } enum "16K" { value 6; description "Mirror 1 in every 16384 packets"; } } description "Enable mirroring of every Nth packet"; } } // container mirror } // list monitor-session } // container monitor-sessions container monitor-session-deprecated { description "Monitor-session deprecated configuration commands"; container ethernet { presence "Indicates a ethernet node is configured."; description "Replicate Ethernet traffic"; leaf session-name { type xr:Cisco-ios-xr-string { length "1..79"; } mandatory true; description "Session Name"; } container direction { description "Specify the direction of traffic to replicate"; container rx-only { must "not(../tx-only)"; presence "Indicates a rx-only node is configured."; description "Replicate only received (ingress) traffic"; } // container rx-only container tx-only { must "not(../rx-only)"; presence "Indicates a tx-only node is configured."; description "Replicate only transmitted (egress) traffic"; } // container tx-only } // container direction container acl { presence "Indicates a acl node is configured."; description "Enable acl based mirroring"; leaf acl-name { type xr:Cisco-ios-xr-string { length "1..80"; } description "ACL name"; } } // container acl leaf acl-ipv4 { type xr:Cisco-ios-xr-string { length "1..80"; } description "Enable IPv4 ACL based mirroring"; } leaf acl-ipv6 { type xr:Cisco-ios-xr-string { length "1..80"; } description "Enable IPv6 ACL based mirroring"; } container mirror { description "Set the mirroring properties of this interface"; leaf first { type uint32 { range "1..10000"; } description "Enable mirroring on the first portion of a packet"; } leaf interval { type enumeration { enum "512" { value 1; description "Mirror 1 in every 512 packets"; } enum "1K" { value 2; description "Mirror 1 in every 1024 packets"; } enum "2K" { value 3; description "Mirror 1 in every 2048 packets"; } enum "4K" { value 4; description "Mirror 1 in every 4096 packets"; } enum "8K" { value 5; description "Mirror 1 in every 8192 packets"; } enum "16K" { value 6; description "Mirror 1 in every 16384 packets"; } } description "Enable mirroring of every Nth packet"; } } // container mirror container port-level { presence "Indicates a port-level node is configured."; description "Replicate traffic on all interfaces of a main interface"; } // container port-level } // container ethernet container ipv4 { presence "Indicates a ipv4 node is configured."; description "Replicate IPv4 traffic"; leaf session-name { type xr:Cisco-ios-xr-string { length "1..79"; } mandatory true; description "Session Name"; } container direction { description "Specify the direction of traffic to replicate"; container rx-only { must "not(../tx-only)"; presence "Indicates a rx-only node is configured."; description "Replicate only received (ingress) traffic"; } // container rx-only container tx-only { must "not(../rx-only)"; presence "Indicates a tx-only node is configured."; description "Replicate only transmitted (egress) traffic"; } // container tx-only } // container direction container acl { presence "Indicates a acl node is configured."; description "Enable acl based mirroring"; leaf acl-name { type xr:Cisco-ios-xr-string { length "1..80"; } description "ACL name"; } } // container acl leaf acl-ipv4 { type xr:Cisco-ios-xr-string { length "1..80"; } description "Enable IPv4 ACL based mirroring"; } leaf acl-ipv6 { type xr:Cisco-ios-xr-string { length "1..80"; } description "Enable IPv6 ACL based mirroring"; } container mirror { description "Set the mirroring properties of this interface"; leaf first { type uint32 { range "1..10000"; } description "Enable mirroring on the first portion of a packet"; } leaf interval { type enumeration { enum "512" { value 1; description "Mirror 1 in every 512 packets"; } enum "1K" { value 2; description "Mirror 1 in every 1024 packets"; } enum "2K" { value 3; description "Mirror 1 in every 2048 packets"; } enum "4K" { value 4; description "Mirror 1 in every 4096 packets"; } enum "8K" { value 5; description "Mirror 1 in every 8192 packets"; } enum "16K" { value 6; description "Mirror 1 in every 16384 packets"; } } description "Enable mirroring of every Nth packet"; } } // container mirror container port-level { presence "Indicates a port-level node is configured."; description "Replicate traffic on all interfaces of a main interface"; } // container port-level } // container ipv4 container ipv6 { presence "Indicates a ipv6 node is configured."; description "Replicate IPv6 traffic"; leaf session-name { type xr:Cisco-ios-xr-string { length "1..79"; } mandatory true; description "Session Name"; } container direction { description "Specify the direction of traffic to replicate"; container rx-only { must "not(../tx-only)"; presence "Indicates a rx-only node is configured."; description "Replicate only received (ingress) traffic"; } // container rx-only container tx-only { must "not(../rx-only)"; presence "Indicates a tx-only node is configured."; description "Replicate only transmitted (egress) traffic"; } // container tx-only } // container direction container acl { presence "Indicates a acl node is configured."; description "Enable acl based mirroring"; leaf acl-name { type xr:Cisco-ios-xr-string { length "1..80"; } description "ACL name"; } } // container acl leaf acl-ipv4 { type xr:Cisco-ios-xr-string { length "1..80"; } description "Enable IPv4 ACL based mirroring"; } leaf acl-ipv6 { type xr:Cisco-ios-xr-string { length "1..80"; } description "Enable IPv6 ACL based mirroring"; } container mirror { description "Set the mirroring properties of this interface"; leaf first { type uint32 { range "1..10000"; } description "Enable mirroring on the first portion of a packet"; } leaf interval { type enumeration { enum "512" { value 1; description "Mirror 1 in every 512 packets"; } enum "1K" { value 2; description "Mirror 1 in every 1024 packets"; } enum "2K" { value 3; description "Mirror 1 in every 2048 packets"; } enum "4K" { value 4; description "Mirror 1 in every 4096 packets"; } enum "8K" { value 5; description "Mirror 1 in every 8192 packets"; } enum "16K" { value 6; description "Mirror 1 in every 16384 packets"; } } description "Enable mirroring of every Nth packet"; } } // container mirror container port-level { presence "Indicates a port-level node is configured."; description "Replicate traffic on all interfaces of a main interface"; } // container port-level } // container ipv6 container mpls-ipv4 { presence "Indicates a mpls-ipv4 node is configured."; description "Replicate MPLS-IPv4 traffic"; leaf session-name { type xr:Cisco-ios-xr-string { length "1..79"; } mandatory true; description "Session Name"; } container direction { description "Specify the direction of traffic to replicate"; container rx-only { must "not(../tx-only)"; presence "Indicates a rx-only node is configured."; description "Replicate only received (ingress) traffic"; } // container rx-only container tx-only { must "not(../rx-only)"; presence "Indicates a tx-only node is configured."; description "Replicate only transmitted (egress) traffic"; } // container tx-only } // container direction container acl { presence "Indicates a acl node is configured."; description "Enable acl based mirroring"; leaf acl-name { type xr:Cisco-ios-xr-string { length "1..80"; } description "ACL name"; } } // container acl leaf acl-ipv4 { type xr:Cisco-ios-xr-string { length "1..80"; } description "Enable IPv4 ACL based mirroring"; } leaf acl-ipv6 { type xr:Cisco-ios-xr-string { length "1..80"; } description "Enable IPv6 ACL based mirroring"; } container mirror { description "Set the mirroring properties of this interface"; leaf first { type uint32 { range "1..10000"; } description "Enable mirroring on the first portion of a packet"; } leaf interval { type enumeration { enum "512" { value 1; description "Mirror 1 in every 512 packets"; } enum "1K" { value 2; description "Mirror 1 in every 1024 packets"; } enum "2K" { value 3; description "Mirror 1 in every 2048 packets"; } enum "4K" { value 4; description "Mirror 1 in every 4096 packets"; } enum "8K" { value 5; description "Mirror 1 in every 8192 packets"; } enum "16K" { value 6; description "Mirror 1 in every 16384 packets"; } } description "Enable mirroring of every Nth packet"; } } // container mirror container port-level { presence "Indicates a port-level node is configured."; description "Replicate traffic on all interfaces of a main interface"; } // container port-level } // container mpls-ipv4 container mpls-ipv6 { presence "Indicates a mpls-ipv6 node is configured."; description "Replicate MPLS-IPv6 traffic"; leaf session-name { type xr:Cisco-ios-xr-string { length "1..79"; } mandatory true; description "Session Name"; } container direction { description "Specify the direction of traffic to replicate"; container rx-only { must "not(../tx-only)"; presence "Indicates a rx-only node is configured."; description "Replicate only received (ingress) traffic"; } // container rx-only container tx-only { must "not(../rx-only)"; presence "Indicates a tx-only node is configured."; description "Replicate only transmitted (egress) traffic"; } // container tx-only } // container direction container acl { presence "Indicates a acl node is configured."; description "Enable acl based mirroring"; leaf acl-name { type xr:Cisco-ios-xr-string { length "1..80"; } description "ACL name"; } } // container acl leaf acl-ipv4 { type xr:Cisco-ios-xr-string { length "1..80"; } description "Enable IPv4 ACL based mirroring"; } leaf acl-ipv6 { type xr:Cisco-ios-xr-string { length "1..80"; } description "Enable IPv6 ACL based mirroring"; } container mirror { description "Set the mirroring properties of this interface"; leaf first { type uint32 { range "1..10000"; } description "Enable mirroring on the first portion of a packet"; } leaf interval { type enumeration { enum "512" { value 1; description "Mirror 1 in every 512 packets"; } enum "1K" { value 2; description "Mirror 1 in every 1024 packets"; } enum "2K" { value 3; description "Mirror 1 in every 2048 packets"; } enum "4K" { value 4; description "Mirror 1 in every 4096 packets"; } enum "8K" { value 5; description "Mirror 1 in every 8192 packets"; } enum "16K" { value 6; description "Mirror 1 in every 16384 packets"; } } description "Enable mirroring of every Nth packet"; } } // container mirror container port-level { presence "Indicates a port-level node is configured."; description "Replicate traffic on all interfaces of a main interface"; } // container port-level } // container mpls-ipv6 } // container monitor-session-deprecated leaf vrf { tailf:dependency "../a1:interface-name"; when "../a1:interface-name[not(starts-with(text(),'tunnel-'))] and ../a1:interface-name[not(starts-with(text(),'cem'))] and ../a1:interface-name[not(starts-with(text(),'nve'))]"; type xr:Cisco-ios-xr-string { length "1..32"; } description "Set VRF in which the interface operates"; } container address-family { tailf:dependency "../a1:interface-name"; when "../a1:interface-name[not(starts-with(text(),'pw-ether'))] and ../a1:interface-name[not(starts-with(text(),'pw-iw'))] and ../a1:interface-name[not(starts-with(text(),'cem'))]"; description "AFI/SAFI configuration"; container ipv4 { description "IPv4 address family"; container multicast { presence "Indicates a multicast node is configured."; description "Multicast topology"; container default-topology { presence "Indicates a default-topology node is configured."; description "Multicast default topology"; } // container default-topology container topologies { description "Specify a non-default topology"; list topology { key "topology-name"; description "Specify a non-default topology"; leaf topology-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a non-default topology"; } } // list topology } // container topologies } // container multicast } // container ipv4 container ipv6 { description "IPv6 address family"; container multicast { presence "Indicates a multicast node is configured."; description "Multicast topology"; container default-topology { presence "Indicates a default-topology node is configured."; description "Multicast default topology"; } // container default-topology container topologies { description "Specify a non-default topology"; list topology { key "topology-name"; description "Specify a non-default topology"; leaf topology-name { type string { length "1..32"; } description "Specify a non-default topology"; } } // list topology } // container topologies } // container multicast } // container ipv6 } // container address-family container lldp { presence "Indicates a lldp node is configured."; description "LLDP interface configuration commands"; container transmit { description "Disable LLDP TX on an interface"; container disable { presence "Indicates a disable node is configured."; description "Disable LLDP TX on an interface"; } // container disable } // container transmit container receive { description "Disable LLDP RX on an interface"; container disable { presence "Indicates a disable node is configured."; description "Disable LLDP RX on an interface"; } // container disable } // container receive container destination { description "Configure LLDP Destination MAC on the interface"; container mac-address { presence "Indicates a mac-address node is configured."; description "Destination MAC address on the interface"; container ieee-nearest-non-tmpr-bridge { must "not(../ieee-nearest-bridge)"; presence "Indicates a ieee-nearest-non-tmpr-bridge node is configured."; description "IEEE Non-TMPR Bridge MAC address, 01:80:C2:00:00:03"; } // container ieee-nearest-non-tmpr-bridge container ieee-nearest-bridge { must "not(../ieee-nearest-non-tmpr-bridge)"; presence "Indicates a ieee-nearest-bridge node is configured."; description "Default LLDP Destination MAC address, 01:80:C2:00:00:0E"; } // container ieee-nearest-bridge } // container mac-address } // container destination container enable { presence "Indicates a enable node is configured."; description "Enable LLDP TX and RX on an interface"; } // container enable } // container lldp container csi-ether { tailf:dependency "../a1:interface-name"; when "../a1:interface-name[starts-with(text(),'CSI-Ether')]"; description "CSI-Ether interface subcommands"; leaf mtu { type uint32 { range "64..9500"; } description "Set the CSI Ether MA MTU"; } } // container csi-ether 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 container bundle { 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')] or ../a1:interface-name[starts-with(text(),'Bundle-')]"; description "Bundle interface commands"; container minimum-active { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[starts-with(text(),'Bundle-')]"; description "Set the minimum criteria for the bundle to be active"; leaf links { type uint32 { range "1..64"; } description "Set the number of active links needed to bring up this bundle"; } container bandwidth { description "Set the bandwidth needed to bring up this bundle"; leaf bandwidth { type uint32 { range "1..4294967295"; } description "Set the bandwidth (in kbps) needed to bring up this bundle"; } leaf kbps { type uint32 { range "1..4294967295"; } description "Set the bandwidth in kbps"; } leaf mbps { type uint32 { range "1..4294967295"; } description "Set the bandwidth in mbps"; } leaf gbps { type uint32 { range "1..4294967295"; } description "Set the bandwidth in gbps"; } } // container bandwidth } // container minimum-active container maximum-active { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[starts-with(text(),'Bundle-')]"; description "Set a limit on the number of links that can be active"; container links { presence "Indicates a links node is configured."; description "Set the maximum number of active links in this bundle"; leaf maximum-number { type uint32 { range "1..64"; } mandatory true; description "Set the maximum number of active links in this bundle"; } container hot-standby { presence "Indicates a hot-standby node is configured."; description "Hot-standby behaviour (non-standard, only effective on links with LACP enabled)"; } // container hot-standby } // container links } // container maximum-active leaf wait-while { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[starts-with(text(),'Bundle-')]"; type uint32 { range "0..2000"; } description "Set the wait-while timeout for members of this bundle"; } container shutdown { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[starts-with(text(),'Bundle-')]"; presence "Indicates a shutdown node is configured."; description "Bring all links in the bundle down to Standby state"; } // container shutdown container load-balancing { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[starts-with(text(),'Bundle-')]"; description "Load balancing commands on a bundle"; container hash { description "Select the hash function used for traffic forwarded over the bundle"; container src-ip { presence "Indicates a src-ip node is configured."; description "Use the source IP as the hash function"; } // container src-ip container dst-ip { presence "Indicates a dst-ip node is configured."; description "Use the destination IP as the hash function"; } // container dst-ip } // container hash container localize { description "Restrict forwarding to members in the same rack where possible"; container threshold { description "The threshold below which traffic is no longer localized"; leaf links { type uint32 { range "1..64"; } description "Set a threshold of active member links per rack"; } } // container threshold } // container localize } // container load-balancing leaf lacp-delay { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[starts-with(text(),'Bundle-')]"; type uint32 { range "1000..15000"; } description "Set the lacp-delay timeout for members of this bundle"; } container logging { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[starts-with(text(),'Bundle-')]"; description "logging events for the members of this bundle"; container oos { presence "Indicates a oos node is configured."; description "Enable OOS logging events for the members of this bundle"; } // container oos } // container logging container lacp-fallback { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[starts-with(text(),'Bundle-')]"; description "Set the lacp-fallback for members of this bundle"; leaf timeout { type uint32 { range "1..120"; } description "Set the timeout for lacp-fallback"; } } // container lacp-fallback container id { 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')]"; presence "Indicates a id node is configured."; description "Add the port to an aggregated interface."; leaf bundle-id { type uint32 { range "1..65535"; } mandatory true; description "Add the port to an aggregated interface."; } leaf mode { type enumeration { enum "on" { value 1; description "Do not run LACP over the port."; } enum "active" { value 2; description "Run LACP in active mode over the port."; } enum "passive" { value 3; description "Run LACP in passive mode over the port."; } enum "inherit" { value 4; description "Run LACP as configured in bundle."; } } mandatory true; description "Specify the mode of operation."; } } // container id leaf port-priority { 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 uint32 { range "1..65535"; } description "Priority for this port. Lower value is higher priority."; } } // container bundle container bfd { tailf:dependency "../a1:interface-name"; when "../a1:interface-name[starts-with(text(),'Bundle-')]"; description "BFD configuration on a bundle interface"; container address-family { description "Set configuration for a given address family"; container ipv4 { description "Set configuration for the IPv4 address family"; leaf destination { type inet:ipv4-address-no-zone; description "Set the destination address for the BFD session"; } container echo { description "Set the configuration for the echo mode of BFD"; leaf minimum-interval { type uint32 { range "15..2000"; } description "Set the preferred minimum interval for the BFD session"; } } // container echo leaf minimum-interval { type uint32 { range "3..30000"; } description "Set the preferred minimum interval for the BFD session"; } leaf multiplier { type uint32 { range "2..50"; } description "Set the preferred multiplier for the BFD session"; } container fast-detect { presence "Indicates a fast-detect node is configured."; description "Enable fast detection using BFD on bundle members"; } // container fast-detect container timers { description "Set the timers that determine when a BFD session defaults to down"; leaf start { type uint32 { range "1..3600"; } description "The time since starting a BFD session before it is considered to have gone down"; } leaf nbr-unconfig { type uint32 { range "1..3600"; } description "The time since a BFD signalled that a peer session is unconfigured before it is considered to have gone down"; } } // container timers } // container ipv4 container ipv6 { description "Set configuration for the IPv6 address family"; leaf destination { type inet:ipv6-address-no-zone; description "Set the destination address for the BFD session"; } leaf minimum-interval { type uint32 { range "3..30000"; } description "Set the preferred minimum interval for the BFD session"; } leaf multiplier { type uint32 { range "2..50"; } description "Set the preferred multiplier for the BFD session"; } container fast-detect { presence "Indicates a fast-detect node is configured."; description "Enable fast detection using BFD on bundle members"; } // container fast-detect container timers { description "Set the timers that determine when a BFD session defaults to down"; leaf start { type uint32 { range "1..3600"; } description "The time since starting a BFD session before it is considered to have gone down"; } leaf nbr-unconfig { type uint32 { range "1..3600"; } description "The time since a BFD signalled that a peer session is unconfigured before it is considered to have gone down"; } } // container timers } // container ipv6 } // container address-family container mode { must "cisco or ietf"; presence "Indicates a mode node is configured."; description "Standard used for per-member BFD"; container cisco { presence "Indicates a cisco node is configured."; description "Use Cisco standard for BoB"; } // container cisco container ietf { presence "Indicates a ietf node is configured."; description "Use IETF standard for BoB"; } // container ietf } // container mode } // container bfd container lacp { 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')] or ../a1:interface-name[starts-with(text(),'Bundle-')]"; description "Bundle interface LACP commands"; container switchover { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[starts-with(text(),'Bundle-')]"; description "Modify behavior for switching between links in this bundle"; leaf suppress-flaps { type uint32 { range "100..65535"; } description "Set the time for which to suppress flaps during a LACP switchover"; } } // container switchover container churn { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[starts-with(text(),'Bundle-')]"; description "Settings for LACP churn detection"; leaf logging { type enumeration { enum "actor" { value 1; description "Log actor churn events only"; } enum "partner" { value 2; description "Log partner churn events only"; } enum "both" { value 3; description "Log actor and partner churn events"; } } description "Set parameters for logging of churn events"; } } // container churn leaf collector-max-delay { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[starts-with(text(),'Bundle-')]"; type uint32 { range "0..65535"; } description "Collector max delay to be signaled to the LACP partner"; } container timeout { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[starts-with(text(),'Bundle-')]"; 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 "Set the timeout to use before declaring actor churn"; } leaf partner-churn { type uint32 { range "0..120"; } description "Set the timeout to use before declaring partner churn"; } } // container timeout container cisco { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[starts-with(text(),'Bundle-')]"; description "Cisco LACP extensions"; container enable { presence "Indicates a enable node is configured."; description "Enable the use of Cisco LACP extensions"; container link-order { description "Link ordering numbers processing"; container signaled { presence "Indicates a signaled node is configured."; description "Turn on processing of link ordering numbers"; } // container signaled } // container link-order } // container enable } // container cisco container non-revertive { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[starts-with(text(),'Bundle-')]"; presence "Indicates a non-revertive node is configured."; description "Set the bundle to lacp non-revertive mode"; } // container non-revertive leaf mode { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[starts-with(text(),'Bundle-')]"; type enumeration { enum "on" { value 0; description "Do not run LACP over the port."; } enum "active" { value 1; description "Run LACP in active mode over the port."; } enum "passive" { value 2; description "Run LACP in passive mode over the port."; } } description " Set the LACP mode on bundle to be used by its member link"; } container system { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[starts-with(text(),'Bundle-')]"; description "Set the default system parameters for LACP bundles"; leaf priority { type uint32 { range "1..65535"; } description "The system priority to use in LACP negotiations."; } leaf mac { type yang:mac-address; description "Configure the system ID to use in LACP negotiations for this bundle."; } } // container system container period { must "transmission-id or short"; presence "Indicates a period node is configured."; description "Set the period on bundle to be used by its member link"; leaf transmission-id { type uint32 { range "2..30000"; } description " Set the period on bundle to be used by its member link"; } container short { presence "Indicates a short node is configured."; description "set the short period on bundle"; } // container short } // container period leaf default-threshold { 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 uint32 { range "1..3"; } description "Set the LACP packet default threshold"; } leaf expire-threshold { 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 uint32 { range "1..3"; } description "Set the LACP packet expire threshold"; } } // container lacp container mlacp { tailf:dependency "../a1:interface-name"; when "../a1:interface-name[starts-with(text(),'Bundle-')]"; description "Multi-chassis LACP per-interface commands"; leaf iccp-group { type uint32 { range "1..4294967295"; } description "ICCP redundancy group related commands for this bundle."; } leaf port-priority { type uint32 { range "1..65535"; } description "Set the priority for all member links on this device when running mLACP."; } container switchover { description "Set the parameters for performing a switchover to/from the mLACP peer"; leaf type { type enumeration { enum "brute-force" { value 1; description "Force switchover by disabling all local member links"; } enum "revertive" { value 2; description "Revert based on configured priority values"; } } description "Set the type of switchover operation to use"; } container maximize { description "Parameters for switchover behavior to maximize operational links/bandwidth"; container links { presence "Indicates a links node is configured."; description "Compare the number of operational links"; leaf threshold { type uint32 { range "1..64"; } description "Set the threshold below which to switch to the peer if it has more links available"; } } // container links container bandwidth { presence "Indicates a bandwidth node is configured."; description "Compare the total bandwidth of operational links"; leaf threshold { type uint64 { range "1..18446744073709551615"; } description "Set the threshold below which to switch to the peer if it has more bandwidth available"; } } // container bandwidth } // container maximize leaf recovery-delay { type uint32 { range "0..65535"; } description "Specify delay before bundle becoming active after recovery from failure"; } } // container switchover } // container mlacp container cdp { presence "Indicates a cdp node is configured."; description "Enable CDP on an interface"; } // container cdp container cdp-mac-address { description "Configure CDP MAC address on interface"; container ethernet-slow-protocols-mac { presence "Indicates a ethernet-slow-protocols-mac node is configured."; description "Ethernet Slow-Protocols MAC, 01:80:c2:00:00:02"; } // container ethernet-slow-protocols-mac } // container cdp-mac-address container frequency { 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(),'TwentyFiveGigE')] or ../a1:interface-name[starts-with(text(),'FortyGigE')] or ../a1:interface-name[starts-with(text(),'FiftyGigE')] 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(),'CPRIoE')]"; description "Frequency Synchronization configuration"; container synchronization { presence "Indicates a synchronization node is configured."; description "Frequency Synchronization configuration"; container ssm { description "SSM configuration commands"; container disable { presence "Indicates a disable node is configured."; description "Disable sending of SSMs"; } // container disable } // container ssm leaf priority { type uint32 { range "1..254"; } description "Source priority"; } leaf time-of-day-priority { type uint32 { range "1..254"; } description "Source time-of-day priority"; } container quality { description "Quality level configuration"; container transmit { description "Set the quality level to be transmitted"; container lowest { description "Specify the lowest acceptable QL value"; container itu-t { description "ITU-T QL options"; container option { description "ITU-T QL options"; leaf one { type enumeration { enum "prc" { value 22; description "ITU-T Option 1: Primary reference clock"; } enum "prtc" { value 21; description "ITU-T Option 1: Primary reference timing clock"; } enum "e-prtc" { value 20; description "ITU-T Option 1: Enhanced primary reference timing clock"; } enum "ssu-a" { value 23; description "ITU-T Option 1: Type I or V subordinate clock"; } enum "ssu-b" { value 24; description "ITU-T Option 1: Type IV subordinate clock"; } enum "sec" { value 27; description "ITU-T Option 1: SONET equipment clock"; } enum "e-eec" { value 25; description "ITU-T Option 1: Enhanced ethernet equipment clock"; } enum "eec1" { value 26; description "ITU-T Option 1: Ethernet equipment clock"; } enum "dnu" { value 1; description "This signal should not be used for synchronization"; } } must "not(../two/generation/one or ../two/generation/two or ../../../../highest/itu-t/option/two/generation/one or ../../../../highest/itu-t/option/two/generation/two or ../../../../exact/itu-t/option/one or ../../../../exact/itu-t/option/two/generation/one or ../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 1"; } container two { description "ITU-T QL option 2"; container generation { description "ITU-T QL option 2 generation"; leaf one { type enumeration { enum "prs" { value 42; description "ITU-T Option 2, Generation 1: Primary reference source"; } enum "prtc" { value 41; description "ITU-T Option 2, Generation 1: Primary reference timing clock"; } enum "e-prtc" { value 40; description "ITU-T Option 2, Generation 1: Enhanced primary reference timing clock"; } enum "stu" { value 43; description "ITU-T Option 2, Generation 1: Synchronized - traceability unknown"; } enum "st2" { value 44; description "ITU-T Option 2, Generation 1: Stratum 2"; } enum "st3" { value 45; description "ITU-T Option 2, Generation 1: Stratum 3"; } enum "smc" { value 48; description "ITU-T Option 2, Generation 1: SONET clock self timed"; } enum "eec2" { value 47; description "ITU-T Option 2, Generation 1: Ethernet equipment clock"; } enum "e-eec" { value 46; description "ITU-T Option 2, Generation 1: Ethernet ethernet equipment clock"; } enum "st4" { value 49; description "ITU-T Option 2, Generation 1: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../two or ../../../../../../highest/itu-t/option/one or ../../../../../../highest/itu-t/option/two/generation/two or ../../../../../../exact/itu-t/option/one or ../../../../../../exact/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 1"; } leaf two { type enumeration { enum "prs" { value 62; description "ITU-T Option 2, Generation 2: Primary reference source"; } enum "prtc" { value 61; description "ITU-T Option 2, Generation 2: Primary reference timing clock"; } enum "e-prtc" { value 60; description "ITU-T Option 2, Generation 2: Enhanced primary reference timing clock"; } enum "stu" { value 63; description "ITU-T Option 2, Generation 2: Synchronized - traceability unknown"; } enum "st2" { value 64; description "ITU-T Option 2, Generation 2: Stratum 2"; } enum "tnc" { value 65; description "ITU-T Option 2, Generation 2: Transit node clock"; } enum "st3e" { value 66; description "ITU-T Option 2, Generation 2: Stratum 3E"; } enum "st3" { value 67; description "ITU-T Option 2, Generation 2: Stratum 3"; } enum "smc" { value 70; description "ITU-T Option 2, Generation 2: SONET clock self timed"; } enum "eec2" { value 69; description "ITU-T Option 2, Generation 2: Ethernet equipment clock"; } enum "e-eec" { value 68; description "ITU-T Option 2, Generation 2: Ethernet ethernet equipment clock"; } enum "st4" { value 71; description "ITU-T Option 2, Generation 2: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../one or ../../../../../../highest/itu-t/option/one or ../../../../../../highest/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/one or ../../../../../../exact/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 2"; } } // container generation } // container two } // container option } // container itu-t } // container lowest container highest { description "Specify the highest acceptable QL value"; container itu-t { description "ITU-T QL options"; container option { description "ITU-T QL options"; leaf one { type enumeration { enum "prc" { value 22; description "ITU-T Option 1: Primary reference clock"; } enum "prtc" { value 21; description "ITU-T Option 1: Primary reference timing clock"; } enum "e-prtc" { value 20; description "ITU-T Option 1: Enhanced primary reference timing clock"; } enum "ssu-a" { value 23; description "ITU-T Option 1: Type I or V subordinate clock"; } enum "ssu-b" { value 24; description "ITU-T Option 1: Type IV subordinate clock"; } enum "sec" { value 27; description "ITU-T Option 1: SONET equipment clock"; } enum "e-eec" { value 25; description "ITU-T Option 1: Enhanced ethernet equipment clock"; } enum "eec1" { value 26; description "ITU-T Option 1: Ethernet equipment clock"; } enum "dnu" { value 1; description "This signal should not be used for synchronization"; } } must "not(../two/generation/one or ../two/generation/two or ../../../../lowest/itu-t/option/one or ../../../../lowest/itu-t/option/two/generation/one or ../../../../lowest/itu-t/option/two/generation/two or ../../../../exact/itu-t/option/one or ../../../../exact/itu-t/option/two/generation/one or ../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 1"; } container two { description "ITU-T QL option 2"; container generation { description "ITU-T QL option 2 generation"; leaf one { type enumeration { enum "prs" { value 42; description "ITU-T Option 2, Generation 1: Primary reference source"; } enum "prtc" { value 41; description "ITU-T Option 2, Generation 1: Primary reference timing clock"; } enum "e-prtc" { value 40; description "ITU-T Option 2, Generation 1: Enhanced primary reference timing clock"; } enum "stu" { value 43; description "ITU-T Option 2, Generation 1: Synchronized - traceability unknown"; } enum "st2" { value 44; description "ITU-T Option 2, Generation 1: Stratum 2"; } enum "st3" { value 45; description "ITU-T Option 2, Generation 1: Stratum 3"; } enum "smc" { value 48; description "ITU-T Option 2, Generation 1: SONET clock self timed"; } enum "eec2" { value 47; description "ITU-T Option 2, Generation 1: Ethernet equipment clock"; } enum "e-eec" { value 46; description "ITU-T Option 2, Generation 1: Ethernet ethernet equipment clock"; } enum "st4" { value 49; description "ITU-T Option 2, Generation 1: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../two or ../../../../../../lowest/itu-t/option/one or ../../../../../../lowest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/two/generation/two or ../../../../../../exact/itu-t/option/one or ../../../../../../exact/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 1"; } leaf two { type enumeration { enum "prs" { value 62; description "ITU-T Option 2, Generation 2: Primary reference source"; } enum "prtc" { value 61; description "ITU-T Option 2, Generation 2: Primary reference timing clock"; } enum "e-prtc" { value 60; description "ITU-T Option 2, Generation 2: Enhanced primary reference timing clock"; } enum "stu" { value 63; description "ITU-T Option 2, Generation 2: Synchronized - traceability unknown"; } enum "st2" { value 64; description "ITU-T Option 2, Generation 2: Stratum 2"; } enum "tnc" { value 65; description "ITU-T Option 2, Generation 2: Transit node clock"; } enum "st3e" { value 66; description "ITU-T Option 2, Generation 2: Stratum 3E"; } enum "st3" { value 67; description "ITU-T Option 2, Generation 2: Stratum 3"; } enum "smc" { value 70; description "ITU-T Option 2, Generation 2: SONET clock self timed"; } enum "eec2" { value 69; description "ITU-T Option 2, Generation 2: Ethernet equipment clock"; } enum "e-eec" { value 68; description "ITU-T Option 2, Generation 2: Ethernet ethernet equipment clock"; } enum "st4" { value 71; description "ITU-T Option 2, Generation 2: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../one or ../../../../../../lowest/itu-t/option/one or ../../../../../../lowest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/two/generation/two or ../../../../../../exact/itu-t/option/one or ../../../../../../exact/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 2"; } } // container generation } // container two } // container option } // container itu-t } // container highest container exact { description "Specify the exact QL value to use"; container itu-t { description "ITU-T QL options"; container option { description "ITU-T QL options"; leaf one { type enumeration { enum "prc" { value 22; description "ITU-T Option 1: Primary reference clock"; } enum "prtc" { value 21; description "ITU-T Option 1: Primary reference timing clock"; } enum "e-prtc" { value 20; description "ITU-T Option 1: Enhanced primary reference timing clock"; } enum "ssu-a" { value 23; description "ITU-T Option 1: Type I or V subordinate clock"; } enum "ssu-b" { value 24; description "ITU-T Option 1: Type IV subordinate clock"; } enum "sec" { value 27; description "ITU-T Option 1: SONET equipment clock"; } enum "e-eec" { value 25; description "ITU-T Option 1: Enhanced ethernet equipment clock"; } enum "eec1" { value 26; description "ITU-T Option 1: Ethernet equipment clock"; } enum "dnu" { value 1; description "This signal should not be used for synchronization"; } } must "not(../two/generation/one or ../two/generation/two or ../../../../highest/itu-t/option/two/generation/one or ../../../../highest/itu-t/option/two/generation/two or ../../../../lowest/itu-t/option/one or ../../../../lowest/itu-t/option/two/generation/one or ../../../../lowest/itu-t/option/two/generation/two)"; description "ITU-T QL option 1"; } container two { description "ITU-T QL option 2"; container generation { description "ITU-T QL option 2 generation"; leaf one { type enumeration { enum "prs" { value 42; description "ITU-T Option 2, Generation 1: Primary reference source"; } enum "prtc" { value 41; description "ITU-T Option 2, Generation 1: Primary reference timing clock"; } enum "e-prtc" { value 40; description "ITU-T Option 2, Generation 1: Enhanced primary reference timing clock"; } enum "stu" { value 43; description "ITU-T Option 2, Generation 1: Synchronized - traceability unknown"; } enum "st2" { value 44; description "ITU-T Option 2, Generation 1: Stratum 2"; } enum "st3" { value 45; description "ITU-T Option 2, Generation 1: Stratum 3"; } enum "smc" { value 48; description "ITU-T Option 2, Generation 1: SONET clock self timed"; } enum "eec2" { value 47; description "ITU-T Option 2, Generation 1: Ethernet equipment clock"; } enum "e-eec" { value 46; description "ITU-T Option 2, Generation 1: Ethernet ethernet equipment clock"; } enum "st4" { value 49; description "ITU-T Option 2, Generation 1: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../two or ../../../../../../highest/itu-t/option/one or ../../../../../../highest/itu-t/option/two/generation/two or ../../../../../../lowest/itu-t/option/one or ../../../../../../lowest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 1"; } leaf two { type enumeration { enum "prs" { value 62; description "ITU-T Option 2, Generation 2: Primary reference source"; } enum "prtc" { value 61; description "ITU-T Option 2, Generation 2: Primary reference timing clock"; } enum "e-prtc" { value 60; description "ITU-T Option 2, Generation 2: Enhanced primary reference timing clock"; } enum "stu" { value 63; description "ITU-T Option 2, Generation 2: Synchronized - traceability unknown"; } enum "st2" { value 64; description "ITU-T Option 2, Generation 2: Stratum 2"; } enum "tnc" { value 65; description "ITU-T Option 2, Generation 2: Transit node clock"; } enum "st3e" { value 66; description "ITU-T Option 2, Generation 2: Stratum 3E"; } enum "st3" { value 67; description "ITU-T Option 2, Generation 2: Stratum 3"; } enum "smc" { value 70; description "ITU-T Option 2, Generation 2: SONET clock self timed"; } enum "eec2" { value 69; description "ITU-T Option 2, Generation 2: Ethernet equipment clock"; } enum "e-eec" { value 68; description "ITU-T Option 2, Generation 2: Ethernet ethernet equipment clock"; } enum "st4" { value 71; description "ITU-T Option 2, Generation 2: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../one or ../../../../../../highest/itu-t/option/one or ../../../../../../highest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/one or ../../../../../../lowest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 2"; } } // container generation } // container two } // container option } // container itu-t } // container exact } // container transmit container receive { description "Adjust the received quality level"; container lowest { description "Specify the lowest acceptable QL value"; container itu-t { description "ITU-T QL options"; container option { description "ITU-T QL options"; leaf one { type enumeration { enum "prc" { value 22; description "ITU-T Option 1: Primary reference clock"; } enum "prtc" { value 21; description "ITU-T Option 1: Primary reference timing clock"; } enum "e-prtc" { value 20; description "ITU-T Option 1: Enhanced primary reference timing clock"; } enum "ssu-a" { value 23; description "ITU-T Option 1: Type I or V subordinate clock"; } enum "ssu-b" { value 24; description "ITU-T Option 1: Type IV subordinate clock"; } enum "sec" { value 27; description "ITU-T Option 1: SONET equipment clock"; } enum "e-eec" { value 25; description "ITU-T Option 1: Enhanced ethernet equipment clock"; } enum "eec1" { value 26; description "ITU-T Option 1: Ethernet equipment clock"; } enum "dnu" { value 1; description "This signal should not be used for synchronization"; } } must "not(../two/generation/one or ../two/generation/two or ../../../../highest/itu-t/option/two/generation/one or ../../../../highest/itu-t/option/two/generation/two or ../../../../exact/itu-t/option/one or ../../../../exact/itu-t/option/two/generation/one or ../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 1"; } container two { description "ITU-T QL option 2"; container generation { description "ITU-T QL option 2 generation"; leaf one { type enumeration { enum "prs" { value 42; description "ITU-T Option 2, Generation 1: Primary reference source"; } enum "prtc" { value 41; description "ITU-T Option 2, Generation 1: Primary reference timing clock"; } enum "e-prtc" { value 40; description "ITU-T Option 2, Generation 1: Enhanced primary reference timing clock"; } enum "stu" { value 43; description "ITU-T Option 2, Generation 1: Synchronized - traceability unknown"; } enum "st2" { value 44; description "ITU-T Option 2, Generation 1: Stratum 2"; } enum "st3" { value 45; description "ITU-T Option 2, Generation 1: Stratum 3"; } enum "smc" { value 48; description "ITU-T Option 2, Generation 1: SONET clock self timed"; } enum "eec2" { value 47; description "ITU-T Option 2, Generation 1: Ethernet equipment clock"; } enum "e-eec" { value 46; description "ITU-T Option 2, Generation 1: Ethernet ethernet equipment clock"; } enum "st4" { value 49; description "ITU-T Option 2, Generation 1: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../two or ../../../../../../highest/itu-t/option/one or ../../../../../../highest/itu-t/option/two/generation/two or ../../../../../../exact/itu-t/option/one or ../../../../../../exact/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 1"; } leaf two { type enumeration { enum "prs" { value 62; description "ITU-T Option 2, Generation 2: Primary reference source"; } enum "prtc" { value 61; description "ITU-T Option 2, Generation 2: Primary reference timing clock"; } enum "e-prtc" { value 60; description "ITU-T Option 2, Generation 2: Enhanced primary reference timing clock"; } enum "stu" { value 63; description "ITU-T Option 2, Generation 2: Synchronized - traceability unknown"; } enum "st2" { value 64; description "ITU-T Option 2, Generation 2: Stratum 2"; } enum "tnc" { value 65; description "ITU-T Option 2, Generation 2: Transit node clock"; } enum "st3e" { value 66; description "ITU-T Option 2, Generation 2: Stratum 3E"; } enum "st3" { value 67; description "ITU-T Option 2, Generation 2: Stratum 3"; } enum "smc" { value 70; description "ITU-T Option 2, Generation 2: SONET clock self timed"; } enum "eec2" { value 69; description "ITU-T Option 2, Generation 2: Ethernet equipment clock"; } enum "e-eec" { value 68; description "ITU-T Option 2, Generation 2: Ethernet ethernet equipment clock"; } enum "st4" { value 71; description "ITU-T Option 2, Generation 2: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../one or ../../../../../../highest/itu-t/option/one or ../../../../../../highest/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/one or ../../../../../../exact/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 2"; } } // container generation } // container two } // container option } // container itu-t } // container lowest container highest { description "Specify the highest acceptable QL value"; container itu-t { description "ITU-T QL options"; container option { description "ITU-T QL options"; leaf one { type enumeration { enum "prc" { value 22; description "ITU-T Option 1: Primary reference clock"; } enum "prtc" { value 21; description "ITU-T Option 1: Primary reference timing clock"; } enum "e-prtc" { value 20; description "ITU-T Option 1: Enhanced primary reference timing clock"; } enum "ssu-a" { value 23; description "ITU-T Option 1: Type I or V subordinate clock"; } enum "ssu-b" { value 24; description "ITU-T Option 1: Type IV subordinate clock"; } enum "sec" { value 27; description "ITU-T Option 1: SONET equipment clock"; } enum "e-eec" { value 25; description "ITU-T Option 1: Enhanced ethernet equipment clock"; } enum "eec1" { value 26; description "ITU-T Option 1: Ethernet equipment clock"; } enum "dnu" { value 1; description "This signal should not be used for synchronization"; } } must "not(../two/generation/one or ../two/generation/two or ../../../../lowest/itu-t/option/one or ../../../../lowest/itu-t/option/two/generation/one or ../../../../lowest/itu-t/option/two/generation/two or ../../../../exact/itu-t/option/one or ../../../../exact/itu-t/option/two/generation/one or ../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 1"; } container two { description "ITU-T QL option 2"; container generation { description "ITU-T QL option 2 generation"; leaf one { type enumeration { enum "prs" { value 42; description "ITU-T Option 2, Generation 1: Primary reference source"; } enum "prtc" { value 41; description "ITU-T Option 2, Generation 1: Primary reference timing clock"; } enum "e-prtc" { value 40; description "ITU-T Option 2, Generation 1: Enhanced primary reference timing clock"; } enum "stu" { value 43; description "ITU-T Option 2, Generation 1: Synchronized - traceability unknown"; } enum "st2" { value 44; description "ITU-T Option 2, Generation 1: Stratum 2"; } enum "st3" { value 45; description "ITU-T Option 2, Generation 1: Stratum 3"; } enum "smc" { value 48; description "ITU-T Option 2, Generation 1: SONET clock self timed"; } enum "eec2" { value 47; description "ITU-T Option 2, Generation 1: Ethernet equipment clock"; } enum "e-eec" { value 46; description "ITU-T Option 2, Generation 1: Ethernet ethernet equipment clock"; } enum "st4" { value 49; description "ITU-T Option 2, Generation 1: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../two or ../../../../../../lowest/itu-t/option/one or ../../../../../../lowest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/two/generation/two or ../../../../../../exact/itu-t/option/one or ../../../../../../exact/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 1"; } leaf two { type enumeration { enum "prs" { value 62; description "ITU-T Option 2, Generation 2: Primary reference source"; } enum "prtc" { value 61; description "ITU-T Option 2, Generation 2: Primary reference timing clock"; } enum "e-prtc" { value 60; description "ITU-T Option 2, Generation 2: Enhanced primary reference timing clock"; } enum "stu" { value 63; description "ITU-T Option 2, Generation 2: Synchronized - traceability unknown"; } enum "st2" { value 64; description "ITU-T Option 2, Generation 2: Stratum 2"; } enum "tnc" { value 65; description "ITU-T Option 2, Generation 2: Transit node clock"; } enum "st3e" { value 66; description "ITU-T Option 2, Generation 2: Stratum 3E"; } enum "st3" { value 67; description "ITU-T Option 2, Generation 2: Stratum 3"; } enum "smc" { value 70; description "ITU-T Option 2, Generation 2: SONET clock self timed"; } enum "eec2" { value 69; description "ITU-T Option 2, Generation 2: Ethernet equipment clock"; } enum "e-eec" { value 68; description "ITU-T Option 2, Generation 2: Ethernet ethernet equipment clock"; } enum "st4" { value 71; description "ITU-T Option 2, Generation 2: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../one or ../../../../../../lowest/itu-t/option/one or ../../../../../../lowest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/two/generation/two or ../../../../../../exact/itu-t/option/one or ../../../../../../exact/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 2"; } } // container generation } // container two } // container option } // container itu-t } // container highest container exact { description "Specify the exact QL value to use"; container itu-t { description "ITU-T QL options"; container option { description "ITU-T QL options"; leaf one { type enumeration { enum "prc" { value 22; description "ITU-T Option 1: Primary reference clock"; } enum "prtc" { value 21; description "ITU-T Option 1: Primary reference timing clock"; } enum "e-prtc" { value 20; description "ITU-T Option 1: Enhanced primary reference timing clock"; } enum "ssu-a" { value 23; description "ITU-T Option 1: Type I or V subordinate clock"; } enum "ssu-b" { value 24; description "ITU-T Option 1: Type IV subordinate clock"; } enum "sec" { value 27; description "ITU-T Option 1: SONET equipment clock"; } enum "e-eec" { value 25; description "ITU-T Option 1: Enhanced ethernet equipment clock"; } enum "eec1" { value 26; description "ITU-T Option 1: Ethernet equipment clock"; } enum "dnu" { value 1; description "This signal should not be used for synchronization"; } } must "not(../two/generation/one or ../two/generation/two or ../../../../highest/itu-t/option/two/generation/one or ../../../../highest/itu-t/option/two/generation/two or ../../../../lowest/itu-t/option/one or ../../../../lowest/itu-t/option/two/generation/one or ../../../../lowest/itu-t/option/two/generation/two)"; description "ITU-T QL option 1"; } container two { description "ITU-T QL option 2"; container generation { description "ITU-T QL option 2 generation"; leaf one { type enumeration { enum "prs" { value 42; description "ITU-T Option 2, Generation 1: Primary reference source"; } enum "prtc" { value 41; description "ITU-T Option 2, Generation 1: Primary reference timing clock"; } enum "e-prtc" { value 40; description "ITU-T Option 2, Generation 1: Enhanced primary reference timing clock"; } enum "stu" { value 43; description "ITU-T Option 2, Generation 1: Synchronized - traceability unknown"; } enum "st2" { value 44; description "ITU-T Option 2, Generation 1: Stratum 2"; } enum "st3" { value 45; description "ITU-T Option 2, Generation 1: Stratum 3"; } enum "smc" { value 48; description "ITU-T Option 2, Generation 1: SONET clock self timed"; } enum "eec2" { value 47; description "ITU-T Option 2, Generation 1: Ethernet equipment clock"; } enum "e-eec" { value 46; description "ITU-T Option 2, Generation 1: Ethernet ethernet equipment clock"; } enum "st4" { value 49; description "ITU-T Option 2, Generation 1: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../two or ../../../../../../highest/itu-t/option/one or ../../../../../../highest/itu-t/option/two/generation/two or ../../../../../../lowest/itu-t/option/one or ../../../../../../lowest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 1"; } leaf two { type enumeration { enum "prs" { value 62; description "ITU-T Option 2, Generation 2: Primary reference source"; } enum "prtc" { value 61; description "ITU-T Option 2, Generation 2: Primary reference timing clock"; } enum "e-prtc" { value 60; description "ITU-T Option 2, Generation 2: Enhanced primary reference timing clock"; } enum "stu" { value 63; description "ITU-T Option 2, Generation 2: Synchronized - traceability unknown"; } enum "st2" { value 64; description "ITU-T Option 2, Generation 2: Stratum 2"; } enum "tnc" { value 65; description "ITU-T Option 2, Generation 2: Transit node clock"; } enum "st3e" { value 66; description "ITU-T Option 2, Generation 2: Stratum 3E"; } enum "st3" { value 67; description "ITU-T Option 2, Generation 2: Stratum 3"; } enum "smc" { value 70; description "ITU-T Option 2, Generation 2: SONET clock self timed"; } enum "eec2" { value 69; description "ITU-T Option 2, Generation 2: Ethernet equipment clock"; } enum "e-eec" { value 68; description "ITU-T Option 2, Generation 2: Ethernet ethernet equipment clock"; } enum "st4" { value 71; description "ITU-T Option 2, Generation 2: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../one or ../../../../../../highest/itu-t/option/one or ../../../../../../highest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/one or ../../../../../../lowest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 2"; } } // container generation } // container two } // container option } // container itu-t } // container exact } // container receive } // container quality leaf wait-to-restore { type uint32 { range "0..12"; } description "Set the wait-to-restore time"; } container selection { description "Selection configuration commands"; container input { presence "Indicates a input node is configured."; description "Enable this source for selection"; } // container input } // container selection } // container synchronization } // container frequency container ethernet { description "Ethernet per-interface configuration commands"; container oam { presence "Indicates a oam node is configured."; description "OAM configuration"; container link-monitor { description "Enter link-monitor submode"; container symbol-period { description "Symbol-period event configuration"; container window { description "window size for symbol-period event configuration"; leaf milliseconds { type uint32 { range "1000..60000"; } must "not(../symbols/window-size)"; description "Use milliseconds as the units for the symbol-period window"; } container symbols { description "Use symbols as the units for the symbol-period window"; leaf window-size { type uint32 { range "1..4294967295"; } must "not(../../milliseconds)"; description "Size of the symbol-period window in symbols"; } container thousand { must "../window-size and not(../million or ../billion)"; presence "Indicates a thousand node is configured."; description "Use thousands of the specified units"; } // container thousand container million { must "../window-size and not(../thousand or ../billion)"; presence "Indicates a million node is configured."; description "Use millions of the specified units"; } // container million container billion { must "../window-size and not(../thousand or ../million)"; presence "Indicates a billion node is configured."; description "Use billions of the specified units"; } // container billion } // container symbols } // container window container threshold { description "threshold configuration for symbol-period events"; container symbols { description "Use symbols as the units for the symbol-period threshold"; leaf low { type uint32 { range "1..4294967295"; } description "low threshold for symbol-period events"; } leaf high { type uint32 { range "1..4294967295"; } description "high threshold for symbol-period events"; } container thousand { must "(../low or ../high) and not(../million or ../billion)"; presence "Indicates a thousand node is configured."; description "Use thousands of the specified units"; } // container thousand container million { must "(../low or ../high) and not(../thousand or ../billion)"; presence "Indicates a million node is configured."; description "Use millions of the specified units"; } // container million container billion { must "(../low or ../high) and not(../thousand or ../million)"; presence "Indicates a billion node is configured."; description "Use billions of the specified units"; } // container billion } // container symbols container ppm { description "Use parts-per-million as the units for the symbol-period threshold"; leaf low { type uint32 { range "1..1000000"; } description "low threshold for symbol-period events"; } leaf high { type uint32 { range "1..1000000"; } description "high threshold for symbol-period events"; } } // container ppm } // container threshold } // container symbol-period container frame { description "Frame event configuration"; container window { description "window size for frame event configuration"; leaf milliseconds { type uint32 { range "1000..60000"; } description "Use milliseconds as the units for the frame window"; } } // container window container threshold { description "threshold configuration for frame events"; leaf low { type uint32 { range "1..4294967295"; } description "low threshold for frame events"; } leaf high { type uint32 { range "1..4294967295"; } description "high threshold for frame events"; } container thousand { must "(../low or ../high) and not(../million or ../billion)"; presence "Indicates a thousand node is configured."; description "Use thousands of the specified units"; } // container thousand container million { must "(../low or ../high) and not(../thousand or ../billion)"; presence "Indicates a million node is configured."; description "Use millions of the specified units"; } // container million container billion { must "(../low or ../high) and not(../thousand or ../million)"; presence "Indicates a billion node is configured."; description "Use billions of the specified units"; } // container billion } // container threshold } // container frame container frame-period { description "frame-period event configuration"; container window { description "window size for frame-period event configuration"; leaf milliseconds { type uint32 { range "100..60000"; } must "not(../frames/window-size)"; description "Use milliseconds as the units for the frame-period window"; } container frames { description "Use frames as the units for the frame-period window"; leaf window-size { type uint32 { range "1..4294967295"; } must "not(../../milliseconds)"; description "Size of the frame-period window in symbols"; } container thousand { must "../window-size and not(../million or ../billion)"; presence "Indicates a thousand node is configured."; description "Use thousands of the specified units"; } // container thousand container million { must "../window-size and not(../thousand or ../billion)"; presence "Indicates a million node is configured."; description "Use millions of the specified units"; } // container million container billion { must "../window-size and not(../thousand or ../million)"; presence "Indicates a billion node is configured."; description "Use billions of the specified units"; } // container billion } // container frames } // container window container threshold { description "threshold for frame-period events"; container frames { description "Use frames as the units for the frame-period threshold"; leaf low { type uint32 { range "1..4294967295"; } description "low threshold for frame-period events"; } leaf high { type uint32 { range "1..4294967295"; } description "high threshold for frame-period events"; } container thousand { must "(../low or ../high) and not(../million or ../billion)"; presence "Indicates a thousand node is configured."; description "Use thousands of the specified units"; } // container thousand container million { must "(../low or ../high) and not(../thousand or ../billion)"; presence "Indicates a million node is configured."; description "Use millions of the specified units"; } // container million container billion { must "(../low or ../high) and not(../thousand or ../million)"; presence "Indicates a billion node is configured."; description "Use billions of the specified units"; } // container billion } // container frames container ppm { description "Use parts-per-million as the units for the frame-period threshold"; leaf low { type uint32 { range "1..1000000"; } description "low threshold for frame events"; } leaf high { type uint32 { range "1..1000000"; } description "high threshold for frame events"; } } // container ppm } // container threshold } // container frame-period container frame-seconds { description "frame-seconds event configuration"; container window { description "window size for frame-seconds event configuration"; leaf milliseconds { type uint32 { range "10000..900000"; } description "Use milliseconds as the units for the frame-seconds window"; } } // container window container threshold { description "threshold"; leaf low { type uint32 { range "1..900"; } description "low threshold for frame-seconds events"; } leaf high { type uint32 { range "1..900"; } description "high threshold for frame-seconds events"; } } // container threshold } // container frame-seconds container monitoring { presence "Indicates a monitoring node is configured."; description "Monitoring support"; container disable { presence "Indicates a disable node is configured."; description "Disable monitoring"; } // container disable } // container monitoring } // container link-monitor container mode { description "OAM mode"; container passive { must "not(../active)"; presence "Indicates a passive node is configured."; description "Passive mode"; } // container passive container active { must "not(../passive)"; presence "Indicates a active node is configured."; description "Active mode"; } // container active } // container mode leaf hello-interval { type enumeration { enum "100ms" { value 1; description "100 millisecond hello interval"; } enum "1s" { value 0; description "1 second hello interval"; } } description "Hello interval time"; } container remote-loopback { presence "Indicates a remote-loopback node is configured."; description "Remote-loopback support"; } // container remote-loopback container mib-retrieval { presence "Indicates a mib-retrieval node is configured."; description "MIB retrieval support"; } // container mib-retrieval container uni-directional { description "Uni-directional link-fault detection support"; container link-fault { description "Uni-directional link-fault detection support"; container detection { presence "Indicates a detection node is configured."; description "Uni-directional link-fault detection support"; } // container detection } // container link-fault } // container uni-directional container connection { description "OAM connection configuration"; leaf timeout { type uint32 { range "2..30"; } description "OAM connection session timeout period"; } } // container connection container profiles { description "Set the profile to use on the interface"; leaf interface-profile-name { type xr:Cisco-ios-xr-string { length "1..32"; pattern '[-a-zA-Z0-9_]*[-a-zA-Z0-9_]'; } description "Enter a profile name using only letters, numbers, '_' & '-'"; } } // container profiles container require-remote { description "Enter require-remote submode"; container mib-retrieval { presence "Indicates a mib-retrieval node is configured."; description "Requirement of MIB retrieval support"; } // container mib-retrieval container remote-loopback { presence "Indicates a remote-loopback node is configured."; description "Requirement of Remote loopback support"; } // container remote-loopback container link-monitoring { presence "Indicates a link-monitoring node is configured."; description "Requirement of Link monitoring support"; } // container link-monitoring container mode { description "Requirement of a specific OAM mode"; container passive { must "not(../active or ../disabled)"; presence "Indicates a passive node is configured."; description "Require passive mode"; } // container passive container active { must "not(../passive or ../disabled)"; presence "Indicates a active node is configured."; description "Require active mode"; } // container active container disabled { must "not(../passive or ../active)"; presence "Indicates a disabled node is configured."; description "Disable the requirement of a specific mode"; } // container disabled } // container mode } // container require-remote container action { description "Enter action submode"; container critical-event { description "Action to perform when a critical event occurs"; container error-disable-interface { must "not(../log or ../disable)"; presence "Indicates a error-disable-interface node is configured."; description "Error-disable the interface"; } // container error-disable-interface container log { must "not(../error-disable-interface or ../disable)"; presence "Indicates a log node is configured."; description "Log the event"; } // container log container disable { must "not(../error-disable-interface or ../log)"; presence "Indicates a disable node is configured."; description "Perform no action"; } // container disable } // container critical-event container dying-gasp { description "Action to perform when a dying gasp occurs"; container error-disable-interface { must "not(../log or ../disable)"; presence "Indicates a error-disable-interface node is configured."; description "Error-disable the interface"; } // container error-disable-interface container log { must "not(../error-disable-interface or ../disable)"; presence "Indicates a log node is configured."; description "Log the event"; } // container log container disable { must "not(../error-disable-interface or ../log)"; presence "Indicates a disable node is configured."; description "Perform no action"; } // container disable } // container dying-gasp container uni-directional { description "Action to perform when a uni-directional link-fault message is received"; container link-fault { description "Action to perform when a uni-directional link-fault message is received"; container error-disable-interface { must "not(../efd or ../log or ../disable)"; presence "Indicates a error-disable-interface node is configured."; description "Error-disable the interface"; } // container error-disable-interface container efd { must "not(../error-disable-interface or ../log or ../disable)"; presence "Indicates a efd node is configured."; description "Bring down the interface using EFD"; } // container efd container log { must "not(../error-disable-interface or ../efd or ../disable)"; presence "Indicates a log node is configured."; description "Log the event"; } // container log container disable { must "not(../error-disable-interface or ../efd or ../log)"; presence "Indicates a disable node is configured."; description "Perform no action"; } // container disable } // container link-fault } // container uni-directional container capabilities-conflict { description "Action to perform when a capabilities conflict occurs"; container error-disable-interface { must "not(../efd or ../log or ../disable)"; presence "Indicates a error-disable-interface node is configured."; description "Error-disable the interface"; } // container error-disable-interface container efd { must "not(../error-disable-interface or ../log or ../disable)"; presence "Indicates a efd node is configured."; description "Enable EFD to bring down the interface"; } // container efd container log { must "not(../error-disable-interface or ../efd or ../disable)"; presence "Indicates a log node is configured."; description "Log the event"; } // container log container disable { must "not(../error-disable-interface or ../efd or ../log)"; presence "Indicates a disable node is configured."; description "Perform no action"; } // container disable } // container capabilities-conflict container wiring-conflict { description "Action to perform when a wiring conflict occurs"; container efd { must "not(../error-disable-interface or ../log or ../disable)"; presence "Indicates a efd node is configured."; description "Enable EFD to bring down the interface"; } // container efd container error-disable-interface { must "not(../efd or ../log or ../disable)"; presence "Indicates a error-disable-interface node is configured."; description "Error-disable the interface"; } // container error-disable-interface container log { must "not(../efd or ../error-disable-interface or ../disable)"; presence "Indicates a log node is configured."; description "Log the event"; } // container log container disable { must "not(../efd or ../error-disable-interface or ../log)"; presence "Indicates a disable node is configured."; description "Perform no action"; } // container disable } // container wiring-conflict container discovery-timeout { description "Action to perform when discovery timeout occurs"; container error-disable-interface { must "not(../efd or ../log or ../disable)"; presence "Indicates a error-disable-interface node is configured."; description "Error-disable the interface"; } // container error-disable-interface container efd { must "not(../error-disable-interface or ../log or ../disable)"; presence "Indicates a efd node is configured."; description "Enable EFD to bring down the interface"; } // container efd container log { must "not(../error-disable-interface or ../efd or ../disable)"; presence "Indicates a log node is configured."; description "Log the event"; } // container log container disable { must "not(../error-disable-interface or ../efd or ../log)"; presence "Indicates a disable node is configured."; description "Perform no action"; } // container disable } // container discovery-timeout container high-threshold { description "Action to perform when a high-threshold is crossed"; container error-disable-interface { must "not(../log or ../disable)"; presence "Indicates a error-disable-interface node is configured."; description "disable the interface"; } // container error-disable-interface container log { must "not(../error-disable-interface or ../disable)"; presence "Indicates a log node is configured."; description "Log the event"; } // container log container disable { must "not(../error-disable-interface or ../log)"; presence "Indicates a disable node is configured."; description "Perform no action"; } // container disable } // container high-threshold container remote-loopback { description "Action to perform when a remote loopback event occurs"; container log { must "not(../disable)"; presence "Indicates a log node is configured."; description "Log the event"; } // container log container disable { must "not(../log)"; presence "Indicates a disable node is configured."; description "Perform no action"; } // container disable } // container remote-loopback container session-up { description "Action to perform when a session comes up"; container log { must "not(../disable)"; presence "Indicates a log node is configured."; description "Log the event"; } // container log container disable { must "not(../log)"; presence "Indicates a disable node is configured."; description "Perform no action"; } // container disable } // container session-up container session-down { description "Action to perform when a session goes down"; container error-disable-interface { must "not(../efd or ../log or ../disable)"; presence "Indicates a error-disable-interface node is configured."; description "Error-disable the interface"; } // container error-disable-interface container efd { must "not(../error-disable-interface or ../log or ../disable)"; presence "Indicates a efd node is configured."; description "Enable EFD to bring down the interface"; } // container efd container log { must "not(../error-disable-interface or ../efd or ../disable)"; presence "Indicates a log node is configured."; description "Log the event"; } // container log container disable { must "not(../error-disable-interface or ../efd or ../log)"; presence "Indicates a disable node is configured."; description "Perform no action"; } // container disable } // container session-down } // container action } // container oam } // container ethernet } // list interface list interface-preconfigure { key "interface-name"; description "Specify a preconfig interface"; leaf interface-name { type xr:Interface-name; description "Interface configuration subcommands"; } 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 access-group { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[not(starts-with(text(),'tunnel-gre'))] and ../../a1:interface-name[not(starts-with(text(),'tunnel-te'))] and ../../a1:interface-name[not(starts-with(text(),'Loopback'))] and ../../a1:interface-name[not(starts-with(text(),'vasileft'))] and ../../a1:interface-name[not(starts-with(text(),'vasiright'))]"; description "Specify access group for packets"; container ingress { xr:xr-xml-map "ip_pfilter_cfg:Outbound"; must "access-list-name-1"; presence "Indicates an ingress node is configured."; description "IPv4 Packet filter to be applied to inbound packets"; container access-list-name-1 { presence "Indicates this Access-list name is configured"; description "Access-list name"; leaf name { type xr:Cisco-ios-xr-string { length "1..64"; } mandatory true; description "Access-list name"; } container common { presence "Indicates this is a common Access-list name"; description "common Access-list name"; } // container common } // container access-list-name-1 container access-list-name-2 { must "../access-list-name-1"; presence "Indicates this Access-list name is configured"; description "Access-list name"; leaf name { type xr:Cisco-ios-xr-string { length "1..64"; } mandatory true; description "Access-list name"; } container common { presence "Indicates this is a common Access-list name"; description "common Access-list name"; } // container common } // container access-list-name-2 container access-list-name-3 { must "../access-list-name-2"; presence "Indicates this Access-list name is configured"; description "Access-list name"; leaf name { type string { length "1..64"; } mandatory true; description "Access-list name"; } container common { presence "Indicates this is a common Access-list name"; description "common Access-list name"; } // container common } // container access-list-name-3 container access-list-name-4 { must "../access-list-name-3"; presence "Indicates this Access-list name is configured"; description "Access-list name"; leaf name { type string { length "1..64"; } mandatory true; description "Access-list name"; } container common { presence "Indicates this is a common Access-list name"; description "common Access-list name"; } // container common } // container access-list-name-4 container access-list-name-5 { must "../access-list-name-4"; presence "Indicates this Access-list name is configured"; description "Access-list name"; leaf name { type string { length "1..64"; } mandatory true; description "Access-list name"; } container common { presence "Indicates this is a common Access-list name"; description "common Access-list name"; } // container common } // container access-list-name-5 container hardware-count { tailf:dependency "../../../../a1:interface-name"; when "../../../../a1:interface-name[not(starts-with(text(),'MgmtEth'))]"; presence "Indicates a hardware-count node is configured."; description "Count packets in hardware"; } // container hardware-count container interface-statistics { presence "Indicates an interface-statistics node is configured."; description "Per interface statistics in hardware"; } // container interface-statistics leaf compress-level { type uint32 { range "0..3"; } must "not(../access-list-name-2 or ../access-list-name-1/common)"; description "Specify ACL compression in hardware"; } } // container ingress container egress { xr:xr-xml-map "ip_pfilter_cfg:Outbound"; presence "Indicates an egress node is configured."; description "IPv4 Packet filter to be applied to outbound packets"; container access-list-name { presence "Indicates this Access-list name is configured"; description "Access-list name"; leaf name { type xr:Cisco-ios-xr-string { length "1..64"; } mandatory true; description "Access-list name"; } } // container access-list-name container hardware-count { tailf:dependency "../../../../a1:interface-name"; when "../../../../a1:interface-name[not(starts-with(text(),'MgmtEth'))]"; presence "Indicates a hardware-count node is configured."; description "Count packets in hardware"; } // container hardware-count container interface-statistics { presence "Indicates an interface-statistics node is configured."; description "Per interface statistics in hardware"; } // container interface-statistics leaf compress-level { type uint32 { range "0..3"; } description "Specify ACL compression in hardware"; } } // container egress } // container access-group container forwarding-enable { presence "Indicates a forwarding-enable node is configured."; description "enable ipv4 forwarding on a interface"; } // container forwarding-enable container point-to-point { presence "Indicates a point-to-point node is configured."; description "Enable point-to-point handling for this interface."; } // container point-to-point leaf mtu { type uint32 { range "68..65535"; } description "Set IPv4 Maximum Transmission Unit"; } container redirects { presence "Indicates a redirects node is configured."; description "Enable sending ICMP Redirect messages"; } // container redirects container mask-reply { presence "Indicates a mask-reply node is configured."; description "Enable sending ICMP mask reply messages"; } // container mask-reply container helper-addresses { description "Specify a destination address for UDP broadcasts"; list helper-address { key "address vrf"; description "Specify a destination address for UDP broadcasts"; leaf address { type inet:ipv4-address-no-zone; description "Specify a destination address for UDP broadcasts"; } leaf vrf { type xr:Cisco-ios-xr-string { length "1..32"; } description "VRF name"; } } // list helper-address } // container helper-addresses container icmp { description "Disable ICMP unreachable for Nullx interface"; container unreachables { description "Disable sending ICMP Unreachable messages"; container disable { presence "Indicates a disable node is configured."; description "Override sending of ICMP Unreachable messages"; } // container disable } // container unreachables } // container icmp container unreachables { description "Enable sending ICMP Unreachable messages"; container disable { presence "Indicates a disable node is configured."; description "Override sending of ICMP Unreachable messages"; } // container disable } // container unreachables container directed-broadcast { presence "Indicates a directed-broadcast node is configured."; description "Enable forwarding of directed broadcasts"; } // container directed-broadcast container bgp { description "Enable BGP policy based feature"; container policy { description "BGP policy"; container accounting { description "BGP policy accounting"; container input { must "source-accounting or destination-accounting"; presence "Indicates a input node is configured."; description "BGP policy accounting on input"; container source-accounting { presence "Indicates a source-accounting node is configured."; description "BGP policy accounting on source IP address"; } // container source-accounting container destination-accounting { presence "Indicates a destination-accounting node is configured."; description "BGP policy accounting on destination IP address"; } // container destination-accounting } // container input container output { must "source-accounting or destination-accounting"; presence "Indicates a output node is configured."; description "BGP policy accounting on output"; container source-accounting { presence "Indicates a source-accounting node is configured."; description "BGP policy accounting on source IP address"; } // container source-accounting container destination-accounting { presence "Indicates a destination-accounting node is configured."; description "BGP policy accounting on destination IP address"; } // container destination-accounting } // container output } // container accounting container propagation { description "BGP QoS/Flow-tag policy propagation"; container input { description "Flow type is input"; container ip-precedence { description "QPPB using IP Precedence"; container source { must "not(../destination or ../../qos-group/source or ../../qos-group/destination)"; presence "Indicates a source node is configured."; description "QPPB on source IP address"; container qos-group { description "QPPB using Qos Group"; container source { must "not(../destination)"; presence "Indicates a source node is configured."; description "QPPB on source IP address"; } // container source container destination { must "not(../source)"; presence "Indicates a destination node is configured."; description "QPPB on destination IP address"; } // container destination } // container qos-group } // container source container destination { must "not(../source or ../../qos-group/source or ../../qos-group/destination)"; presence "Indicates a destination node is configured."; description "QPPB on destination IP address"; container qos-group { description "QPPB using Qos Group"; container destination { presence "Indicates a destination node is configured."; description "QPPB on destination IP address"; } // container destination } // container qos-group } // container destination } // container ip-precedence container qos-group { description "QPPB using Qos Group"; container source { must "not(../destination or ../../ip-precedence/source or ../../ip-precedence/destination)"; presence "Indicates a source node is configured."; description "QPPB on source IP address"; container ip-precedence { description "QPPB using IP Precedence"; container destination { presence "Indicates a destination node is configured."; description "QPPB on destination IP address"; } // container destination } // container ip-precedence } // container source container destination { must "not(../source or ../../ip-precedence/source or ../../ip-precedence/destination)"; presence "Indicates a destination node is configured."; description "QPPB on destination IP address"; } // container destination } // container qos-group container flow-tag { must "(source or destination) and not(source and destination)"; presence "Indicates a flow-tag node is configured."; description "Flow tag policy option"; container source { presence "Indicates a source node is configured."; description "Flow-tag policy on source IP address"; } // container source container destination { presence "Indicates a destination node is configured."; description "Flow-tag policy on destination IP address"; } // container destination } // container flow-tag } // container input } // container propagation } // container policy } // container bgp container verify { description "Enable per packet validation"; container unicast { description "Enable per packet validation for unicast"; container source { description "Validation of source address"; container reachable-via { presence "Indicates a reachable-via node is configured."; description "Specify reachability check to apply to the source address"; leaf type { type enumeration { enum "any" { value 0; description "Source is reachable via any interface"; } enum "rx" { value 1; description "Source is reachable via interface on which packet was received"; } } mandatory true; description "Source reachable type"; } leaf allow-self-ping { type boolean; mandatory true; description "Allow router to ping itself (opens vulnerability in verification)"; } leaf allow-default { type boolean; mandatory true; description "Allow default route to match when checking source address"; } } // container reachable-via } // container source } // container unicast } // container verify container ttl-propagate { description "Disable ip ttl propagation for this interface."; container disable { presence "Indicates a disable node is configured."; description "Disable ipv4 ttl propagation on this interface"; } // container disable } // container ttl-propagate container tcp-mss-adjust { description "Enable tcp mss adjust for this interface."; container enable { presence "Indicates a enable node is configured."; description "Enable tcp mss adjust on this interface"; } // container enable } // container tcp-mss-adjust container flowspec { description "Flowspec on IPv4 interface"; container disable { presence "Indicates a disable node is configured."; description "Disable flowspec on interface"; } // container disable } // container flowspec container addresses { description "Set the IPv4 address of an interface"; container address { presence "Indicates a address 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 "IP subnet mask"; } leaf route-tag { type uint32 { range "1..4294967295"; } description "Route-tag to be associated with this address"; } } // container address 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 "Route-tag to be associated with this address"; } } // list secondary } // container secondaries leaf unnumbered { tailf:dependency "../../../a1:interface-name"; when "../../../a1:interface-name[not(starts-with(text(),'pw-ether'))]"; type xr:Interface-name; description "Enable IP processing without an explicit address"; } container dhcp { tailf:dependency "../../../a1:interface-name"; when "../../../a1:interface-name[starts-with(text(),'MgmtEth')] or ../../../a1:interface-name[starts-with(text(),'BVI')]"; presence "Indicates a dampening node is configured."; description "IPv4 address and Mask negotiated via DHCP"; } // container dhcp } // container addresses } // container ipv4 container ipv6 { description "Interface IPv6 config commands"; container access-group { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[not(starts-with(text(),'tunnel-gre'))] and ../../a1:interface-name[not(starts-with(text(),'tunnel-te'))] and ../../a1:interface-name[not(starts-with(text(),'Loopback'))] and ../../a1:interface-name[not(starts-with(text(),'vasileft'))] and ../../a1:interface-name[not(starts-with(text(),'vasiright'))]"; description "Specify access group for packets"; container ingress { xr:xr-xml-map "ip_pfilter_cfg:Outbound"; must "access-list-name-1"; presence "Indicates an ingress node is configured."; description "IPv6 Packet filter to be applied to inbound packets"; container access-list-name-1 { presence "Indicates this Access-list name is configured"; description "Access-list name"; leaf name { type xr:Cisco-ios-xr-string { length "1..64"; } mandatory true; description "Access-list name"; } container common { presence "Indicates this is a common Access-list name"; description "common Access-list name"; } // container common } // container access-list-name-1 container access-list-name-2 { must "../access-list-name-1"; presence "Indicates this Access-list name is configured"; description "Access-list name"; leaf name { type xr:Cisco-ios-xr-string { length "1..64"; } mandatory true; description "Access-list name"; } container common { presence "Indicates this is a common Access-list name"; description "common Access-list name"; } // container common } // container access-list-name-2 container access-list-name-3 { must "../access-list-name-2"; presence "Indicates this Access-list name is configured"; description "Access-list name"; leaf name { type xr:Cisco-ios-xr-string { length "1..64"; } mandatory true; description "Access-list name"; } container common { presence "Indicates this is a common Access-list name"; description "common Access-list name"; } // container common } // container access-list-name-3 container access-list-name-4 { must "../access-list-name-3"; presence "Indicates this Access-list name is configured"; description "Access-list name"; leaf name { type xr:Cisco-ios-xr-string { length "1..64"; } mandatory true; description "Access-list name"; } container common { presence "Indicates this is a common Access-list name"; description "common Access-list name"; } // container common } // container access-list-name-4 container access-list-name-5 { must "../access-list-name-4"; presence "Indicates this Access-list name is configured"; description "Access-list name"; leaf name { type string { length "1..64"; } mandatory true; description "Access-list name"; } container common { presence "Indicates this is a common Access-list name"; description "common Access-list name"; } // container common } // container access-list-name-5 container interface-statistics { presence "Indicates an interface-statistics node is configured."; description "Per interface statistics in hardware"; } // container interface-statistics leaf compress-level { type uint32 { range "0..3"; } must "not(../access-list-name-2 or ../access-list-name-1/common)"; description "Specify ACL compression in hardware"; } } // container ingress container egress { xr:xr-xml-map "ip_pfilter_cfg:Outbound"; presence "Indicates an egress node is configured."; description "IPv6 Packet filter to be applied to outbound packets"; container access-list-name-1 { presence "Indicates this Access-list name is configured"; description "Access-list name"; leaf name { type xr:Cisco-ios-xr-string { length "1..64"; } mandatory true; description "Access-list name"; } } // container access-list-name-1 container interface-statistics { presence "Indicates an interface-statistics node is configured."; description "Per interface statistics in hardware"; } // container interface-statistics leaf compress-level { type uint32 { range "0..3"; } description "Specify ACL compression in hardware"; } } // container egress } // container access-group leaf mtu { type uint32 { range "1280..65535"; } description "Set IPv6 Maximum Transmission Unit"; } container unreachables { description "Enable sending ICMP Unreachable messages"; container disable { presence "Indicates a disable node is configured."; description "Override sending of ICMP Unreachable messages"; } // container disable } // container unreachables container verify { description "Enable per packet validation"; container unicast { description "Enable per packet validation for unicast"; container source { description "Validation of source address"; container reachable-via { presence "Indicates a reachable-via node is configured."; description "Specify reachability check to apply to the source address"; leaf type { type enumeration { enum "any" { value 0; description "Source is reachable via any interface"; } enum "rx" { value 1; description "Source is reachable via interface on which packet was received"; } } mandatory true; description "Source reachable type"; } leaf allow-self-ping { type boolean; mandatory true; description "Allow router to ping itself (opens vulnerability in verification)"; } leaf allow-default { type boolean; mandatory true; description "Allow default route to match when checking source address"; } } // container reachable-via } // container source } // container unicast } // container verify container bgp { description "Enable BGP policy based feature"; container policy { description "BGP policy"; container accounting { description "BGP policy accounting"; container input { must "source-accounting or destination-accounting"; presence "Indicates a input node is configured."; description "BGP policy accounting on input"; container source-accounting { presence "Indicates a source-accounting node is configured."; description "BGP policy accounting on source IP address"; } // container source-accounting container destination-accounting { presence "Indicates a destination-accounting node is configured."; description "BGP policy accounting on destination IP address"; } // container destination-accounting } // container input container output { must "source-accounting or destination-accounting"; presence "Indicates a output node is configured."; description "BGP policy accounting on output"; container source-accounting { presence "Indicates a source-accounting node is configured."; description "BGP policy accounting on source IP address"; } // container source-accounting container destination-accounting { presence "Indicates a destination-accounting node is configured."; description "BGP policy accounting on destination IP address"; } // container destination-accounting } // container output } // container accounting container propagation { description "BGP QoS/Flow-tag policy propagation"; container input { description "FLow type is input"; container ip-precedence { description "QPPB using IP Precedence"; container source { must "not(../destination or ../../qos-group/source or ../../qos-group/destination)"; presence "Indicates a source node is configured."; description "QPPB on source IP address"; container qos-group { description "QPPB using Qos Group"; container source { must "not(../destination)"; presence "Indicates a source node is configured."; description "QPPB on source IP address"; } // container source container destination { must "not(../source)"; presence "Indicates a destination node is configured."; description "QPPB on destination IP address"; } // container destination } // container qos-group } // container source container destination { must "not(../source or ../../qos-group/source or ../../qos-group/destination)"; presence "Indicates a destination node is configured."; description "QPPB on destination IP address"; container qos-group { description "QPPB using Qos Group"; container destination { presence "Indicates a destination node is configured."; description "QPPB on destination IP address"; } // container destination } // container qos-group } // container destination } // container ip-precedence container qos-group { description "QPPB using Qos Group"; container source { must "not(../destination or ../../ip-precedence/source or ../../ip-precedence/destination)"; presence "Indicates a source node is configured."; description "QPPB on source IP address"; container ip-precedence { description "QPPB using IP Precedence"; container destination { presence "Indicates a destination node is configured."; description "QPPB on destination IP address"; } // container destination } // container ip-precedence } // container source container destination { must "not(../source or ../../ip-precedence/source or ../../ip-precedence/destination)"; presence "Indicates a destination node is configured."; description "QPPB on destination IP address"; } // container destination } // container qos-group container flow-tag { must "(source or destination) and not(source and destination)"; presence "Indicates a flow-tag node is configured."; description "Flow tag policy option"; container source { presence "Indicates a source node is configured."; description "Flow-tag policy on source IP address"; } // container source container destination { presence "Indicates a destination node is configured."; description "Flow-tag policy on destination IP address"; } // container destination } // container flow-tag } // container input } // container propagation } // container policy } // container bgp container ttl-propagate { description "Disable ip ttl propagation for this interface."; container disable { presence "Indicates a disable node is configured."; description "Disable ipv6 ttl propagation on this interface"; } // container disable } // container ttl-propagate container tcp-mss-adjust { description "Enable tcp mss adjust for this interface."; container enable { presence "Indicates a enable node is configured."; description "Enable tcp mss adjust on this interface"; } // container enable } // container tcp-mss-adjust container flowspec { description "Flowspec on IPv6 interface"; container disable { presence "Indicates a disable node is configured."; description "Disable flowspec on interface"; } // container disable } // container flowspec container addresses { description "Set the IPv6 address of an interface"; list ipv6-address { key "address"; description "IPv6 address"; leaf address { type inet:ip-address-no-zone; description "IPv6 name or address"; } leaf prefix-length { type xr:Ipv6-prefix-length; mandatory true; description "Prefix length in bits"; } leaf zone { type union { type string { pattern '0'; } type string; } mandatory true; description "IPv6 address zone"; } leaf route-tag { type uint32 { range "1..4294967295"; } description "Route-tag to be associated with this address"; } } // list ipv6-address 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 union { type string { pattern '0'; } type string; } mandatory true; description "IPv6 address zone"; } leaf route-tag { type uint32 { range "1..4294967295"; } description "Route-tag to be associated with this address"; } } // container link-local-address container eui64-addresses { description "EUI-64 IPv6 address"; 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 xr:Ipv6-prefix-length; mandatory true; description "Prefix Length"; } leaf zone { type union { type string { pattern '0'; } type string; } mandatory true; description "IPv6 address zone"; } leaf route-tag { type uint32 { range "1..4294967295"; } description "Route-tag to be associated with this address"; } } // list eui64-address } // container eui64-addresses container autoconfig { tailf:dependency "../../../a1:interface-name"; when "../../../a1:interface-name[starts-with(text(),'MgmtEth')]"; presence "Indicates a autoconfig node is configured."; description "Enable slaac on Mgmt interface"; } // container autoconfig container dhcp { tailf:dependency "../../../a1:interface-name"; when "../../../a1:interface-name[starts-with(text(),'MgmtEth')] or ../../../a1:interface-name[starts-with(text(),'BVI')]"; presence "Indicates a dhcp node is configured."; description "Enable dhcp on this interface"; } // container dhcp container dhcp-client-options { presence "Indicates a dhcp-client-options node is configured."; description "DHCP Client Options"; } // container dhcp-client-options } // container addresses container enable { presence "Indicates a dampening node is configured."; description "Enable IPv6 on interface"; } // container enable } // 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"; } container ethernet-services { tailf:dependency "../a1:interface-name"; when "../a1:interface-name[not(starts-with(text(),'tunnel-ip'))] and ../a1:interface-name[not(starts-with(text(),'tunnel-te'))] and ../a1:interface-name[not(starts-with(text(),'Loopback'))] and ../a1:interface-name[not(starts-with(text(),'BVI'))] and ../a1:interface-name[not(starts-with(text(),'MgmtEth'))]"; description "Ethernet related services"; container access-group { description "Specify access control for packets"; leaf ingress { type xr:Cisco-ios-xr-string { length "1..64"; } description "ingress Access-list name"; } leaf egress { type xr:Cisco-ios-xr-string { length "1..64"; } description "egress Access-list name"; } } // container access-group } // container ethernet-services leaf load-interval { type uint32 { range "0|30|60|90|120|150|180|210|240|270|300|330|360|390|420|450|480|510|540|570|600"; } default "300"; description "Specify interval for load calculation for an interface"; } container ipv4 { description "IPv4 interface subcommands"; container flowspec { description "Flowspec on IPv4 interface"; container disable { presence "Indicates a disable node is configured."; description "Disable FlowSpec on this interface"; } // container disable } // container flowspec } // container ipv4 container ipv6 { description "IPv6 interface subcommands"; container flowspec { description "Flowspec on IPv6 interface"; container disable { presence "Indicates a disable node is configured."; description "Disable flowspec on interface"; } // container disable } // container flowspec } // container ipv6 container l2transport { presence "Indicates a l2transport node is configured."; description "Enable Layer 2 transport and enter its configuration submode"; container l2protocol { 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(),'TwentyFiveGigE')] or ../../a1:interface-name[starts-with(text(),'Ethernet')] or ../../a1:interface-name[starts-with(text(),'Bundle-Ether')] or ../../a1:interface-name[starts-with(text(),'PW-Ether')] or ../../a1:interface-name[starts-with(text(),'Interflex')]) and (../../a1:interface-name[not(contains(text(),'.'))] or ../../a1:sub-interface-type/a1:l2transport)"; description "Layer 2 protocol handling"; container cpsv { description "CDP, PVST+, STP, and VTP protocols"; container tunnel { must "not(../reverse-tunnel) and not(../drop)"; presence "Indicates a tunnel node is configured."; description "Tunnel at ingress"; } // container tunnel container reverse-tunnel { must "not(../tunnel) and not(../drop)"; presence "Indicates a reverse-tunnel node is configured."; description "Tunnel at egress"; } // container reverse-tunnel container drop { must "not(../tunnel) and not(../reverse-tunnel)"; presence "Indicates a drop node is configured."; description "Drop these protocol packets"; } // container drop } // container cpsv container cdp { description "Cisco Discovery Protocol"; container drop { must "not(../tunnel) and not(../forward)"; presence "Indicates a drop node is configured."; description "Drop this protocol's packets"; } // container drop container forward { must "not(../drop) and not(../tunnel)"; presence "Indicates a forward node is configured."; description "Forward this protocol's packets"; } // container forward container tunnel { must "not(../drop) and not(../forward)"; presence "Indicates a tunnel node is configured."; description "Tunnel this protocol's packets"; } // container tunnel container experimental { description "Modify the MPLS Experimental bits"; leaf mpls-experimental-bits { type uint32 { range "0..7"; } must "../../forward or ../../tunnel"; description "Set the MPLS experimental bits for this interface"; } } // container experimental } // container cdp container stp { description "Spanning Tree Protocol"; container drop { must "not(../tunnel) and not(../forward)"; presence "Indicates a drop node is configured."; description "Drop this protocol's packets"; } // container drop container forward { must "not(../drop) and not(../tunnel)"; presence "Indicates a forward node is configured."; description "Forward this protocol's packets"; } // container forward container tunnel { must "not(../drop) and not(../forward)"; presence "Indicates a tunnel node is configured."; description "Tunnel this protocol's packets"; } // container tunnel container experimental { description "Modify the MPLS Experimental bits"; leaf mpls-experimental-bits { type uint32 { range "0..7"; } must "../../forward or ../../tunnel"; description "Set the MPLS experimental bits for this interface"; } } // container experimental } // container stp container vtp { description "VLAN Trunk Protocol"; container drop { must "not(../tunnel) and not(../forward)"; presence "Indicates a drop node is configured."; description "Drop this protocol's packets"; } // container drop container forward { must "not(../drop) and not(../tunnel)"; presence "Indicates a forward node is configured."; description "Forward this protocol's packets"; } // container forward container tunnel { must "not(../drop) and not(../forward)"; presence "Indicates a tunnel node is configured."; description "Tunnel this protocol's packets"; } // container tunnel container experimental { description "Modify the MPLS Experimental bits"; leaf mpls-experimental-bits { type uint32 { range "0..7"; } must "../../forward or ../../tunnel"; description "Set the MPLS experimental bits for this interface"; } } // container experimental } // container vtp container pvst { description "Per VLAN Spanning Tree"; container drop { must "not(../tunnel) and not(../forward)"; presence "Indicates a drop node is configured."; description "Drop this protocol's packets"; } // container drop container forward { must "not(../drop) and not(../tunnel)"; presence "Indicates a forward node is configured."; description "Forward this protocol's packets"; } // container forward container tunnel { must "not(../drop) and not(../forward)"; presence "Indicates a tunnel node is configured."; description "Tunnel this protocol's packets"; } // container tunnel container experimental { description "Modify the MPLS Experimental bits"; leaf mpls-experimental-bits { type uint32 { range "0..7"; } must "../../forward or ../../tunnel"; description "Set the MPLS experimental bits for this interface"; } } // container experimental } // container pvst } // container l2protocol container propagate { description "Select events to propagate"; container remote-status { presence "Indicates a remote-status node is configured."; description "Propagate remote link status changes"; } // container remote-status } // container propagate container flow { description "Netflow configuration"; container datalinkframesection { if-feature nf_parser_verify_wrapper_allow_l2_main_dlfs; description "Data link section netflow configuration"; container monitor { description "Specify a flow monitor for packets"; container ingress-monitors { description "Apply flow monitor on incoming packets"; list ingress-monitor { key "monitor-map-name"; description "Specify a flow monitor for packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } } // list ingress-monitor } // container ingress-monitors container ingress-monitor-samplers { description "Specify a flow monitor and sampler for incoming packets"; list ingress-monitor-sampler { key "monitor-map-name sampler-map-name"; description "Specify a flow monitor and sampler for incoming packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } leaf sampler-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a sampler for packets"; } } // list ingress-monitor-sampler } // container ingress-monitor-samplers } // container monitor } // container datalinkframesection } // container flow container monitor-sessions { description "Monitor-session configuration commands"; list monitor-session { must "ethernet or ipv4 or ipv6 or mpls-ipv4 or mpls-ipv6"; key "session-name"; description "Monitor-session configuration commands"; leaf session-name { type string { length "1..79"; } description "Monitor-session configuration commands"; } container ethernet { must "not(../ipv4 or ../ipv6 or ../mpls-ipv4 or ../mpls-ipv6)"; presence "Indicates a ethernet node is configured."; description "Replicate Ethernet traffic"; } // container ethernet container ipv4 { must "not(../ethernet or ../ipv6 or ../mpls-ipv4 or ../mpls-ipv6)"; presence "Indicates a ipv4 node is configured."; description "Replicate IPv4 traffic"; } // container ipv4 container ipv6 { must "not(../ipv4 or ../ethernet or ../mpls-ipv4 or ../mpls-ipv6)"; presence "Indicates a ipv6 node is configured."; description "Replicate IPv6 traffic"; } // container ipv6 container mpls-ipv4 { must "not(../ipv4 or ../ipv6 or ../ethernet or ../mpls-ipv6)"; presence "Indicates a mpls-ipv4 node is configured."; description "Replicate MPLS-IPv4 traffic"; } // container mpls-ipv4 container mpls-ipv6 { must "not(../ipv4 or ../ipv6 or ../mpls-ipv4 or ../ethernet)"; presence "Indicates a mpls-ipv6 node is configured."; description "Replicate MPLS-IPv6 traffic"; } // container mpls-ipv6 container direction { description "Specify the direction of traffic to replicate"; container rx-only { must "not(../tx-only)"; presence "Indicates a rx-only node is configured."; description "Replicate only received (ingress) traffic"; } // container rx-only container tx-only { must "not(../rx-only)"; presence "Indicates a tx-only node is configured."; description "Replicate only transmitted (egress) traffic"; } // container tx-only } // container direction container port-level { presence "Indicates a port-level node is configured."; description "Replicate traffic on all interfaces of a main interface"; } // container port-level container acl { presence "Indicates a acl node is configured."; description "Enable acl based mirroring"; leaf acl-name { type xr:Cisco-ios-xr-string { length "1..80"; } description "ACL name"; } } // container acl leaf acl-ipv4 { type xr:Cisco-ios-xr-string { length "1..80"; } description "Enable IPv4 ACL based mirroring"; } leaf acl-ipv6 { type xr:Cisco-ios-xr-string { length "1..80"; } description "Enable IPv6 ACL based mirroring"; } container mirror { description "Set the mirroring properties of this interface"; leaf first { type uint32 { range "1..10000"; } description "Enable mirroring on the first portion of a packet"; } leaf interval { type enumeration { enum "512" { value 1; description "Mirror 1 in every 512 packets"; } enum "1K" { value 2; description "Mirror 1 in every 1024 packets"; } enum "2K" { value 3; description "Mirror 1 in every 2048 packets"; } enum "4K" { value 4; description "Mirror 1 in every 4096 packets"; } enum "8K" { value 5; description "Mirror 1 in every 8192 packets"; } enum "16K" { value 6; description "Mirror 1 in every 16384 packets"; } } description "Enable mirroring of every Nth packet"; } } // container mirror } // list monitor-session } // container monitor-sessions container monitor-session-deprecated { description "Monitor-session deprecated configuration commands"; container ethernet { presence "Indicates a ethernet node is configured."; description "Replicate Ethernet traffic"; leaf session-name { type xr:Cisco-ios-xr-string { length "1..79"; } mandatory true; description "Session Name"; } container direction { description "Specify the direction of traffic to replicate"; container rx-only { must "not(../tx-only)"; presence "Indicates a rx-only node is configured."; description "Replicate only received (ingress) traffic"; } // container rx-only container tx-only { must "not(../rx-only)"; presence "Indicates a tx-only node is configured."; description "Replicate only transmitted (egress) traffic"; } // container tx-only } // container direction container acl { presence "Indicates a acl node is configured."; description "Enable acl based mirroring"; leaf acl-name { type xr:Cisco-ios-xr-string { length "1..80"; } description "ACL name"; } } // container acl leaf acl-ipv4 { type xr:Cisco-ios-xr-string { length "1..80"; } description "Enable IPv4 ACL based mirroring"; } leaf acl-ipv6 { type xr:Cisco-ios-xr-string { length "1..80"; } description "Enable IPv6 ACL based mirroring"; } container mirror { description "Set the mirroring properties of this interface"; leaf first { type uint32 { range "1..10000"; } description "Enable mirroring on the first portion of a packet"; } leaf interval { type enumeration { enum "512" { value 1; description "Mirror 1 in every 512 packets"; } enum "1K" { value 2; description "Mirror 1 in every 1024 packets"; } enum "2K" { value 3; description "Mirror 1 in every 2048 packets"; } enum "4K" { value 4; description "Mirror 1 in every 4096 packets"; } enum "8K" { value 5; description "Mirror 1 in every 8192 packets"; } enum "16K" { value 6; description "Mirror 1 in every 16384 packets"; } } description "Enable mirroring of every Nth packet"; } } // container mirror container port-level { presence "Indicates a port-level node is configured."; description "Replicate traffic on all interfaces of a main interface"; } // container port-level } // container ethernet } // container monitor-session-deprecated } // container l2transport 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')] or ../a1:interface-name[starts-with(text(),'Bundle-Ether')] or ../a1:interface-name[starts-with(text(),'PW-Ether')])and ../a1:interface-name[contains(text(),'.')]"; description "Set the carrier delay on an interface"; leaf up { type uint32 { range "1..65535"; } description "Set the carrier delay up value"; } } // container carrier-delay container encapsulation { 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(),'Bundle-Ether')] or ../a1:interface-name[starts-with(text(),'PW-Ether')])and ../a1:interface-name[contains(text(),'.')]and not(../a1:sub-interface-type/a1:l2transport)"; description "Specify which packets will be matched by this sub-interface"; container dot1q { description "IEEE 802.1Q VLAN-tagged packets"; leaf vlan-id { type uint32 { range "1..4094"; } description "Configure first (outer) VLAN ID on the subinterface"; } leaf second-dot1q { type uint32 { range "1..4094"; } must "../vlan-id"; description "Configure second (inner 802.1Q) VLAN ID on the subinterface"; } } // container dot1q container dot1ad { description "IEEE 802.1ad VLAN-tagged packets"; leaf vlan-id { type uint32 { range "1..4094"; } description "Configure first (outer) VLAN ID on the subinterface"; } leaf dot1q { type uint32 { range "1..4094"; } must "../vlan-id"; description "Configure second (inner 802.1Q) VLAN ID on the subinterface"; } } // container dot1ad } // container encapsulation container l2transport-encapsulation { 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(),'Bundle-Ether')] or ../a1:interface-name[starts-with(text(),'PW-Ether')])and ../a1:interface-name[contains(text(),'.')]and ../a1:sub-interface-type/a1:l2transport"; description "Specify which packets will be matched by this sub-interface"; container dot1q { description "IEEE 802.1Q VLAN-tagged packets"; leaf vlan-id { type union { type uint32 { range "1..4094"; } type enumeration { enum "any" { value 4096; description "Match any VLAN id"; } } } must "not(../priority-tagged)"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id { type union { type uint32 { range "1..4094"; } type enumeration { enum "not-set" { value 4097; description "Need to set this when configuring additional vlan-id with a single VLAN id"; } } } must "../vlan-id and ../vlan-id != 'any'"; description "End of VLAN range"; } leaf vlan-id-2 { type union { type uint32 { range "1..4094"; } type enumeration { enum "untagged" { value 65534; description "Packets with no explicit VLAN tag"; } } } must "../vlan-id and ../vlan-id != 'any' and ../end-vlan-id"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-2 { type uint32 { range "1..4094"; } must "../vlan-id-2"; description "End of VLAN range"; } leaf vlan-id-3 { type union { type uint32 { range "1..4094"; } type enumeration { enum "untagged" { value 65534; description "Packets with no explicit VLAN tag"; } } } must "../vlan-id-2"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-3 { type uint32 { range "1..4094"; } must "../vlan-id-3"; description "End of VLAN range"; } leaf vlan-id-4 { type union { type uint32 { range "1..4094"; } type enumeration { enum "untagged" { value 65534; description "Packets with no explicit VLAN tag"; } } } must "../vlan-id-3"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-4 { type uint32 { range "1..4094"; } must "../vlan-id-4"; description "End of VLAN range"; } leaf vlan-id-5 { type union { type uint32 { range "1..4094"; } type enumeration { enum "untagged" { value 65534; description "Packets with no explicit VLAN tag"; } } } must "../vlan-id-4"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-5 { type uint32 { range "1..4094"; } must "../vlan-id-5"; description "End of VLAN range"; } leaf vlan-id-6 { type union { type uint32 { range "1..4094"; } type enumeration { enum "untagged" { value 65534; description "Packets with no explicit VLAN tag"; } } } must "../vlan-id-5"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-6 { type uint32 { range "1..4094"; } must "../vlan-id-6"; description "End of VLAN range"; } leaf vlan-id-7 { type union { type uint32 { range "1..4094"; } type enumeration { enum "untagged" { value 65534; description "Packets with no explicit VLAN tag"; } } } must "../vlan-id-6"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-7 { type uint32 { range "1..4094"; } must "../vlan-id-7"; description "End of VLAN range"; } leaf vlan-id-8 { type union { type uint32 { range "1..4094"; } type enumeration { enum "untagged" { value 65534; description "Packets with no explicit VLAN tag"; } } } must "../vlan-id-7"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-8 { type uint32 { range "1..4094"; } must "../vlan-id-8"; description "End of VLAN range"; } leaf vlan-id-9 { type union { type uint32 { range "1..4094"; } type enumeration { enum "untagged" { value 65534; description "Packets with no explicit VLAN tag"; } } } must "../vlan-id-8"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-9 { type uint32 { range "1..4094"; } must "../vlan-id-9"; description "End of VLAN range"; } leaf second-dot1q { type union { type uint32 { range "1..4094"; } type enumeration { enum "any" { value 4096; description "Match any VLAN id"; } } } must "../vlan-id"; description "End of VLAN range"; } container exact { presence "Indicates this node is configured."; description "Do not allow further inner tags"; } // container exact container ingress { description "Perform MAC-based matching"; leaf source-mac { type yang:mac-address; description "Perform source MAC-based matching"; } } // container ingress container priority-tagged { must "not(../vlan-id)"; presence "Indicates a priority-tagged node is configured."; description "IEEE 802.1ad priority-tagged packets"; container dot1q { presence "Indicates a dot1q node is configured."; description "IEEE 802.1Q VLAN-tagged packets"; leaf vlan-id { type union { type uint32 { range "1..4094"; } type enumeration { enum "any" { value 4096; description "Match any VLAN id"; } } } mandatory true; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id { type uint32 { range "1..4094"; } must "../vlan-id != 'any'"; description "End of VLAN range"; } leaf vlan-id-2 { type uint32 { range "1..4094"; } must "../vlan-id != 'any'"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-2 { type uint32 { range "1..4094"; } must "../vlan-id-2"; description "End of VLAN range"; } leaf vlan-id-3 { type uint32 { range "1..4094"; } must "../vlan-id-2"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-3 { type uint32 { range "1..4094"; } must "../vlan-id-3"; description "End of VLAN range"; } leaf vlan-id-4 { type uint32 { range "1..4094"; } must "../vlan-id-3"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-4 { type uint32 { range "1..4094"; } must "../vlan-id-4"; description "End of VLAN range"; } leaf vlan-id-5 { type uint32 { range "1..4094"; } must "../vlan-id-4"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-5 { type uint32 { range "1..4094"; } must "../vlan-id-5"; description "End of VLAN range"; } leaf vlan-id-6 { type uint32 { range "1..4094"; } must "../vlan-id-5"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-6 { type uint32 { range "1..4094"; } must "../vlan-id-6"; description "End of VLAN range"; } leaf vlan-id-7 { type uint32 { range "1..4094"; } must "../vlan-id-6"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-7 { type uint32 { range "1..4094"; } must "../vlan-id-7"; description "End of VLAN range"; } leaf vlan-id-8 { type uint32 { range "1..4094"; } must "../vlan-id-7"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-8 { type uint32 { range "1..4094"; } must "../vlan-id-8"; description "End of VLAN range"; } leaf vlan-id-9 { type uint32 { range "1..4094"; } must "../vlan-id-8"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-9 { type uint32 { range "1..4094"; } must "../vlan-id-9"; description "End of VLAN range"; } } // container dot1q container exact { presence "Indicates this node is configured."; description "Do not allow further inner tags"; } // container exact container ingress { description "Perform MAC-based matching"; leaf source-mac { type yang:mac-address; description "Perform source MAC-based matching"; } } // container ingress } // container priority-tagged } // container dot1q container dot1ad { description "IEEE 802.1ad VLAN-tagged packets"; leaf vlan-id { type union { type uint32 { range "1..4094"; } type enumeration { enum "any" { value 4096; description "Match any VLAN id"; } } } must "not(../priority-tagged)"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id { type union { type uint32 { range "1..4094"; } type enumeration { enum "not-set" { value 4097; description "Need to set this when configuring additional vlan-id with a single VLAN id"; } } } must "../vlan-id and ../vlan-id != 'any'"; description "End of VLAN range"; } leaf vlan-id-2 { type uint32 { range "1..4094"; } must "../vlan-id and ../vlan-id != 'any' and ../end-vlan-id"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-2 { type uint32 { range "1..4094"; } must "../vlan-id-2"; description "End of VLAN range"; } leaf vlan-id-3 { type uint32 { range "1..4094"; } must "../vlan-id-2"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-3 { type uint32 { range "1..4094"; } must "../vlan-id-3"; description "End of VLAN range"; } leaf vlan-id-4 { type uint32 { range "1..4094"; } must "../vlan-id-3"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-4 { type uint32 { range "1..4094"; } must "../vlan-id-4"; description "End of VLAN range"; } leaf vlan-id-5 { type uint32 { range "1..4094"; } must "../vlan-id-4"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-5 { type uint32 { range "1..4094"; } must "../vlan-id-5"; description "End of VLAN range"; } leaf vlan-id-6 { type uint32 { range "1..4094"; } must "../vlan-id-5"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-6 { type uint32 { range "1..4094"; } must "../vlan-id-6"; description "End of VLAN range"; } leaf vlan-id-7 { type uint32 { range "1..4094"; } must "../vlan-id-6"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-7 { type uint32 { range "1..4094"; } must "../vlan-id-7"; description "End of VLAN range"; } leaf vlan-id-8 { type uint32 { range "1..4094"; } must "../vlan-id-7"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-8 { type uint32 { range "1..4094"; } must "../vlan-id-8"; description "End of VLAN range"; } leaf vlan-id-9 { type uint32 { range "1..4094"; } must "../vlan-id-8"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-9 { type uint32 { range "1..4094"; } must "../vlan-id-9"; description "End of VLAN range"; } leaf dot1q { type union { type uint32 { range "1..4094"; } type enumeration { enum "any" { value 4096; description "Match any VLAN id"; } } } must "../vlan-id"; description "End of VLAN range"; } container exact { presence "Indicates this node is configured."; description "Do not allow further inner tags"; } // container exact container ingress { description "Perform MAC-based matching"; leaf source-mac { type yang:mac-address; description "Perform source MAC-based matching"; } } // container ingress container priority-tagged { must "not(../vlan-id)"; presence "Indicates a priority-tagged node is configured."; description "IEEE 802.1ad priority-tagged packets"; container dot1q { presence "Indicates a dot1q node is configured."; description "IEEE 802.1Q VLAN-tagged packets"; leaf vlan-id { type union { type uint32 { range "1..4094"; } type enumeration { enum "any" { value 4096; description "Match any VLAN id"; } } } mandatory true; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id { type uint32 { range "1..4094"; } must "../vlan-id != 'any'"; description "End of VLAN range"; } leaf vlan-id-2 { type uint32 { range "1..4094"; } must "../vlan-id != 'any'"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-2 { type uint32 { range "1..4094"; } must "../vlan-id-2"; description "End of VLAN range"; } leaf vlan-id-3 { type uint32 { range "1..4094"; } must "../vlan-id-2"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-3 { type uint32 { range "1..4094"; } must "../vlan-id-3"; description "End of VLAN range"; } leaf vlan-id-4 { type uint32 { range "1..4094"; } must "../vlan-id-3"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-4 { type uint32 { range "1..4094"; } must "../vlan-id-4"; description "End of VLAN range"; } leaf vlan-id-5 { type uint32 { range "1..4094"; } must "../vlan-id-4"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-5 { type uint32 { range "1..4094"; } must "../vlan-id-5"; description "End of VLAN range"; } leaf vlan-id-6 { type uint32 { range "1..4094"; } must "../vlan-id-5"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-6 { type uint32 { range "1..4094"; } must "../vlan-id-6"; description "End of VLAN range"; } leaf vlan-id-7 { type uint32 { range "1..4094"; } must "../vlan-id-6"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-7 { type uint32 { range "1..4094"; } must "../vlan-id-7"; description "End of VLAN range"; } leaf vlan-id-8 { type uint32 { range "1..4094"; } must "../vlan-id-7"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-8 { type uint32 { range "1..4094"; } must "../vlan-id-8"; description "End of VLAN range"; } leaf vlan-id-9 { type uint32 { range "1..4094"; } must "../vlan-id-8"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-9 { type uint32 { range "1..4094"; } must "../vlan-id-9"; description "End of VLAN range"; } } // container dot1q container exact { presence "Indicates this node is configured."; description "Do not allow further inner tags"; } // container exact container ingress { description "Perform MAC-based matching"; leaf source-mac { type yang:mac-address; description "Perform source MAC-based matching"; } } // container ingress } // container priority-tagged } // container dot1ad container untagged { presence "Indicates untagged node is configured."; description "Packets with no explicit VLAN tag"; container dot1q { presence "Indicates a dot1q node is configured."; description "IEEE 802.1Q VLAN-tagged packets"; leaf vlan-id { type union { type uint32 { range "1..4094"; } type enumeration { enum "any" { value 4096; description "Match any VLAN id"; } } } mandatory true; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id { type uint32 { range "1..4094"; } must "../vlan-id != 'any'"; description "End of VLAN range"; } leaf vlan-id-2 { type uint32 { range "1..4094"; } must "../vlan-id != 'any'"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-2 { type uint32 { range "1..4094"; } must "../vlan-id-2"; description "End of VLAN range"; } leaf vlan-id-3 { type uint32 { range "1..4094"; } must "../vlan-id-2"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-3 { type uint32 { range "1..4094"; } must "../vlan-id-3"; description "End of VLAN range"; } leaf vlan-id-4 { type uint32 { range "1..4094"; } must "../vlan-id-3"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-4 { type uint32 { range "1..4094"; } must "../vlan-id-4"; description "End of VLAN range"; } leaf vlan-id-5 { type uint32 { range "1..4094"; } must "../vlan-id-4"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-5 { type uint32 { range "1..4094"; } must "../vlan-id-5"; description "End of VLAN range"; } leaf vlan-id-6 { type uint32 { range "1..4094"; } must "../vlan-id-5"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-6 { type uint32 { range "1..4094"; } must "../vlan-id-6"; description "End of VLAN range"; } leaf vlan-id-7 { type uint32 { range "1..4094"; } must "../vlan-id-6"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-7 { type uint32 { range "1..4094"; } must "../vlan-id-7"; description "End of VLAN range"; } leaf vlan-id-8 { type uint32 { range "1..4094"; } must "../vlan-id-7"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-8 { type uint32 { range "1..4094"; } must "../vlan-id-8"; description "End of VLAN range"; } leaf vlan-id-9 { type uint32 { range "1..4094"; } must "../vlan-id-8"; description "Single VLAN id or start of VLAN range"; } leaf end-vlan-id-9 { type uint32 { range "1..4094"; } must "../vlan-id-9"; description "End of VLAN range"; } } // container dot1q container ingress { description "Perform MAC-based matching"; leaf source-mac { type yang:mac-address; description "Perform source MAC-based matching"; } } // container ingress } // container untagged container default { presence "Indicates default node is configured."; description "Packets unmatched by other service instances"; } // container default } // container l2transport-encapsulation container rewrite { description "Set the tag rewriting policy for this EFP"; container ingress { description "Set the tag rewriting policy for this EFP"; container tag { description "Set the tag rewriting policy for this EFP"; container push { description "Push one or more tags"; container dot1q { must "not(../dot1ad or ../../pop/one or ../../pop/two or ../../translate/one-to-one/dot1q or ../../translate/one-to-one/dot1ad or ../../translate/one-to-two/dot1q or ../../translate/one-to-two/dot1ad or ../../translate/two-to-one/dot1q or ../../translate/two-to-one/dot1ad or ../../translate/two-to-two/dot1q or ../../translate/two-to-two/dot1ad)"; presence "Indicates dot1q node is configured."; description "Push a Dot1Q tag"; leaf vlan-id { type uint32 { range "1..4094"; } mandatory true; description "Push a Dot1Q tag"; } leaf second-dot1q { type uint32 { range "1..4094"; } description "Push another Dot1Q tag"; } } // container dot1q container dot1ad { must "not(../dot1q or ../../pop/one or ../../pop/two or ../../translate/one-to-one/dot1q or ../../translate/one-to-one/dot1ad or ../../translate/one-to-two/dot1q or ../../translate/one-to-two/dot1ad or ../../translate/two-to-one/dot1q or ../../translate/two-to-one/dot1ad or ../../translate/two-to-two/dot1q or ../../translate/two-to-two/dot1ad)"; presence "Indicates dot1ad node is configured."; description "Push a Dot1ad tag"; leaf vlan-id { type uint32 { range "1..4094"; } mandatory true; description "Push a Dot1Q tag"; } leaf dot1q { type uint32 { range "1..4094"; } description "Push an inner Dot1Q tag"; } } // container dot1ad } // container push container pop { description "Remove one or more tags"; container one { must "not(../../push/dot1q or ../../push/dot1ad or ../two or ../../translate/one-to-one/dot1q or ../../translate/one-to-one/dot1ad or ../../translate/one-to-two/dot1q or ../../translate/one-to-two/dot1ad or ../../translate/two-to-one/dot1q or ../../translate/two-to-one/dot1ad or ../../translate/two-to-two/dot1q or ../../translate/two-to-two/dot1ad)"; presence "Indicates this node is configured."; description "Remove outer tag only"; } // container one container two { must "not(../../push/dot1q or ../../push/dot1ad or ../one or ../../translate/one-to-one/dot1q or ../../translate/one-to-one/dot1ad or ../../translate/one-to-two/dot1q or ../../translate/one-to-two/dot1ad or ../../translate/two-to-one/dot1q or ../../translate/two-to-one/dot1ad or ../../translate/two-to-two/dot1q or ../../translate/two-to-two/dot1ad)"; presence "Indicates this node is configured."; description "Remove two outermost tags"; } // container two } // container pop container translate { description "Replace tags with other tags"; container one-to-one { description "Replace the outermost tag with another tag"; container dot1q { must "not(../../../push/dot1q or ../../../push/dot1ad or ../../../pop/one or ../../../pop/two or ../dot1ad or ../../one-to-two/dot1q or ../../one-to-two/dot1ad or ../../two-to-one/dot1q or ../../two-to-one/dot1ad or ../../two-to-two/dot1q or ../../two-to-two/dot1ad)"; presence "Indicates dot1q node is configured."; description "Push a Dot1Q tag"; leaf vlan-id { type uint32 { range "1..4094"; } mandatory true; description "Push a Dot1Q tag"; } } // container dot1q container dot1ad { must "not(../../../push/dot1q or ../../../push/dot1ad or ../../../pop/one or ../../../pop/two or ../dot1q or ../../one-to-two/dot1q or ../../one-to-two/dot1ad or ../../two-to-one/dot1q or ../../two-to-one/dot1ad or ../../two-to-two/dot1q or ../../two-to-two/dot1ad)"; presence "Indicates dot1ad node is configured."; description "Push a Dot1ad tag"; leaf vlan-id { type uint32 { range "1..4094"; } mandatory true; description "Push a Dot1Q tag"; } } // container dot1ad } // container one-to-one container one-to-two { description "Replace the outermost tag with two tags"; container dot1q { must "not(../../../push/dot1q or ../../../push/dot1ad or ../../../pop/one or ../../../pop/two or ../../one-to-one/dot1q or ../../one-to-one/dot1ad or ../dot1ad or ../../two-to-one/dot1q or ../../two-to-one/dot1ad or ../../two-to-two/dot1q or ../../two-to-two/dot1ad)"; presence "Indicates a dot1q node is configured."; description "Push a Dot1Q tag"; leaf vlan-id { type uint32 { range "1..4094"; } mandatory true; description "Push a Dot1Q tag"; } leaf second-dot1q { type uint32 { range "1..4094"; } mandatory true; description "Push an inner Dot1Q tag"; } } // container dot1q container dot1ad { must "not(../../../push/dot1q or ../../../push/dot1ad or ../../../pop/one or ../../../pop/two or ../../one-to-one/dot1q or ../../one-to-one/dot1ad or ../dot1q or ../../two-to-one/dot1q or ../../two-to-one/dot1ad or ../../two-to-two/dot1q or ../../two-to-two/dot1ad)"; presence "Indicates a dot1ad node is configured."; description "Push a Dot1ad tag"; leaf vlan-id { type uint32 { range "1..4094"; } mandatory true; description "Push a Dot1Q tag"; } leaf dot1q { type uint32 { range "1..4094"; } mandatory true; description "Push an inner Dot1Q tag"; } } // container dot1ad } // container one-to-two container two-to-one { description "Replace the outermost two tags with one tag"; container dot1q { must "not(../../../push/dot1q or ../../../push/dot1ad or ../../../pop/one or ../../../pop/two or ../../one-to-one/dot1q or ../../one-to-one/dot1ad or ../../one-to-two/dot1q or ../../one-to-two/dot1ad or ../dot1ad or ../../two-to-two/dot1q or ../../two-to-two/dot1ad)"; presence "Indicates dot1q node is configured."; description "Push a Dot1Q tag"; leaf vlan-id { type uint32 { range "1..4094"; } mandatory true; description "Push a Dot1Q tag"; } } // container dot1q container dot1ad { must "not(../../../push/dot1q or ../../../push/dot1ad or ../../../pop/one or ../../../pop/two or ../../one-to-one/dot1q or ../../one-to-one/dot1ad or ../../one-to-two/dot1q or ../../one-to-two/dot1ad or ../dot1q or ../../two-to-two/dot1q or ../../two-to-two/dot1ad)"; presence "Indicates dot1ad node is configured."; description "Push a Dot1ad tag"; leaf vlan-id { type uint32 { range "1..4094"; } mandatory true; description "Push a Dot1Q tag"; } } // container dot1ad } // container two-to-one container two-to-two { description "Replace the outermost two tags with two other tags"; container dot1q { must "not(../../../push/dot1q or ../../../push/dot1ad or ../../../pop/one or ../../../pop/two or ../../one-to-one/dot1q or ../../one-to-one/dot1ad or ../../one-to-two/dot1q or ../../one-to-two/dot1ad or ../dot1ad or ../../two-to-one/dot1q or ../../two-to-one/dot1ad)"; presence "Indicates a dot1q node is configured."; description "Push a Dot1Q tag"; leaf vlan-id { type uint32 { range "1..4094"; } mandatory true; description "Push a Dot1Q tag"; } leaf second-dot1q { type uint32 { range "1..4094"; } mandatory true; description "Push an inner Dot1Q tag"; } } // container dot1q container dot1ad { must "not(../../../push/dot1q or ../../../push/dot1ad or ../../../pop/one or ../../../pop/two or ../../one-to-one/dot1q or ../../one-to-one/dot1ad or ../../one-to-two/dot1q or ../../one-to-two/dot1ad or ../dot1q or ../../two-to-one/dot1q or ../../two-to-one/dot1ad)"; presence "Indicates a dot1ad node is configured."; description "Push a Dot1ad tag"; leaf vlan-id { type uint32 { range "1..4094"; } mandatory true; description "Push a Dot1Q tag"; } leaf dot1q { type uint32 { range "1..4094"; } mandatory true; description "Push an inner Dot1Q tag"; } } // container dot1ad } // container two-to-two } // container translate } // container tag } // container ingress } // container rewrite container local-traffic { description "Set the default encapsulation for this EFP"; container default { description "Set the default encapsulation for this EFP"; container encapsulation { description "Set the default encapsulation for this EFP"; container dot1q { presence "Indicates a dot1q node is configured."; description "Default Dot1Q tag"; leaf vlan-id { type uint32 { range "1..4094"; } mandatory true; description "Default Dot1Q tag"; } leaf second-dot1q { type uint32 { range "1..4094"; } description "Default second Dot1Q tag"; } } // container dot1q container dot1ad { presence "Indicates a dot1ad node is configured."; description "Default Dot1ad tag"; leaf vlan-id { type uint32 { range "1..4094"; } mandatory true; description "Default Dot1ad tag"; } leaf dot1q { type uint32 { range "1..4094"; } description "Default inner Dot1Q tag"; } } // container dot1ad } // container encapsulation } // container default } // container local-traffic container dot1q { description "802.1Q VLAN configuration"; container native { description "802.1Q Native VLAN configuration"; leaf vlan { type uint32 { range "1..4094"; } description "Configure the Native VLAN ID for the trunk"; } } // container native container tunneling { description "Q-in-Q configuration"; leaf ethertype { type enumeration { enum "0x9100" { value 37120; description "The outer Ethertype uses value 0x9100 (default is 0x8100)"; } enum "0x9200" { value 37376; description "The outer Ethertype uses value 0x9200 (default is 0x8100)"; } } description "Configure the outer Ethertype used for Q-in-Q frames"; } } // container tunneling } // container dot1q container mac-accounting { description "Start per MAC address accounting on the interface"; container ingress { presence "Indicates a ingress node is configured."; description "Enable accounting on ingress direction"; } // container ingress container egress { presence "Indicates a egress node is configured."; description "Enable accounting on egress direction"; } // container egress } // container mac-accounting container vlan-switched { description "Enable vlan-switched on this interface"; container trunk { description "Enable vlan-switched on trunk port"; container dot1q { description "IEEE 802.1Q VLAN-tagged packets"; leaf vlan-ranges { type xr:Cisco-ios-xr-string { length "1..1024"; } must "not(../../dot1ad/vlan-ranges) and not(../../../access)"; description "List of VLAN Ranges in the form a-b,c,d,e-f,g"; } } // container dot1q container dot1ad { description "IEEE 802.1ad VLAN-tagged packets"; leaf vlan-ranges { type xr:Cisco-ios-xr-string { length "1..1024"; } must "not(../../dot1q/vlan-ranges) and not(../../../access)"; description "List of VLAN Ranges in the form a-b,c,d,e-f,g"; } } // container dot1ad } // container trunk leaf access { type uint32 { range "1..4094"; } must "not(../trunk/dot1q/vlan-ranges) and not(../trunk/dot1ad/vlan-ranges)"; description "Enable vlan-switched on access port"; } } // container vlan-switched container flow { if-feature netflow_if_supported; description "Netflow configuration"; container ipv4 { description "IPV4 netflow configuration"; container monitor { description "Specify a flow monitor for packets"; container ingress-monitors { description "Apply flow monitor on incoming packets"; list ingress-monitor { key "monitor-map-name"; description "Specify a flow monitor for packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } } // list ingress-monitor } // container ingress-monitors container ingress-monitor-samplers { description "Specify a flow monitor and sampler for incoming packets"; list ingress-monitor-sampler { key "monitor-map-name sampler-map-name"; description "Specify a flow monitor and sampler for incoming packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } leaf sampler-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a sampler for packets"; } } // list ingress-monitor-sampler } // container ingress-monitor-samplers container egress-monitors { description "Apply flow monitor on outgoing packets"; list egress-monitor { key "monitor-map-name"; description "Specify a flow monitor for packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } } // list egress-monitor } // container egress-monitors container egress-monitor-samplers { description "Specify a flow monitor and sampler for outgoing packets"; list egress-monitor-sampler { key "monitor-map-name sampler-map-name"; description "Specify a flow monitor and sampler for outgoing packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } leaf sampler-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a sampler for packets"; } } // list egress-monitor-sampler } // container egress-monitor-samplers } // container monitor } // container ipv4 container mpls { if-feature netflow_pd_allow_mpls_kw; description "MPLS netflow configuration"; container monitor { description "Specify a flow monitor for packets"; container ingress-monitors { description "Apply flow monitor on incoming packets"; list ingress-monitor { key "monitor-map-name"; description "Specify a flow monitor for packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } } // list ingress-monitor } // container ingress-monitors container ingress-monitor-samplers { description "Specify a flow monitor and sampler for incoming packets"; list ingress-monitor-sampler { key "monitor-map-name sampler-map-name"; description "Specify a flow monitor and sampler for incoming packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } leaf sampler-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a sampler for packets"; } } // list ingress-monitor-sampler } // container ingress-monitor-samplers container egress-monitors { description "Apply flow monitor on outgoing packets"; list egress-monitor { key "monitor-map-name"; description "Specify a flow monitor for packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } } // list egress-monitor } // container egress-monitors container egress-monitor-samplers { description "Specify a flow monitor and sampler for outgoing packets"; list egress-monitor-sampler { key "monitor-map-name sampler-map-name"; description "Specify a flow monitor and sampler for outgoing packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } leaf sampler-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a sampler for packets"; } } // list egress-monitor-sampler } // container egress-monitor-samplers } // container monitor } // container mpls container ipv6 { if-feature netflow_pd_allow_ipv6_kw; description "IPV6 netflow configuration"; container monitor { description "Specify a flow monitor for packets"; container ingress-monitors { description "Apply flow monitor on incoming packets"; list ingress-monitor { key "monitor-map-name"; description "Specify a flow monitor for packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } } // list ingress-monitor } // container ingress-monitors container ingress-monitor-samplers { description "Specify a flow monitor and sampler for incoming packets"; list ingress-monitor-sampler { key "monitor-map-name sampler-map-name"; description "Specify a flow monitor and sampler for incoming packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } leaf sampler-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a sampler for packets"; } } // list ingress-monitor-sampler } // container ingress-monitor-samplers container egress-monitors { description "Apply flow monitor on outgoing packets"; list egress-monitor { key "monitor-map-name"; description "Specify a flow monitor for packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } } // list egress-monitor } // container egress-monitors container egress-monitor-samplers { description "Specify a flow monitor and sampler for outgoing packets"; list egress-monitor-sampler { key "monitor-map-name sampler-map-name"; description "Specify a flow monitor and sampler for outgoing packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } leaf sampler-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a sampler for packets"; } } // list egress-monitor-sampler } // container egress-monitor-samplers } // container monitor } // container ipv6 container datalinkframesection { if-feature netflow_pd_allow_sectiondata_kw; description "Data link section netflow configuration"; container monitor { description "Specify a flow monitor for packets"; container ingress-monitors { description "Apply flow monitor on incoming packets"; list ingress-monitor { key "monitor-map-name"; description "Specify a flow monitor for packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } } // list ingress-monitor } // container ingress-monitors container ingress-monitor-samplers { description "Specify a flow monitor and sampler for incoming packets"; list ingress-monitor-sampler { key "monitor-map-name sampler-map-name"; description "Specify a flow monitor and sampler for incoming packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } leaf sampler-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a sampler for packets"; } } // list ingress-monitor-sampler } // container ingress-monitor-samplers container egress-monitors { description "Apply flow monitor on outgoing packets"; list egress-monitor { key "monitor-map-name"; description "Specify a flow monitor for packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } } // list egress-monitor } // container egress-monitors container egress-monitor-samplers { description "Specify a flow monitor and sampler for outgoing packets"; list egress-monitor-sampler { key "monitor-map-name sampler-map-name"; description "Specify a flow monitor and sampler for outgoing packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } leaf sampler-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a sampler for packets"; } } // list egress-monitor-sampler } // container egress-monitor-samplers } // container monitor } // container datalinkframesection container map-t { if-feature nf_parser_verify_wrapper_allow_intf_mapt_kw; description "Map-t netflow configuration"; container monitor { description "Specify a flow monitor for packets"; container ingress-monitors { description "Apply flow monitor on incoming packets"; list ingress-monitor { key "monitor-map-name"; description "Specify a flow monitor for packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } } // list ingress-monitor } // container ingress-monitors container ingress-monitor-samplers { description "Specify a flow monitor and sampler for incoming packets"; list ingress-monitor-sampler { key "monitor-map-name sampler-map-name"; description "Specify a flow monitor and sampler for incoming packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } leaf sampler-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a sampler for packets"; } } // list ingress-monitor-sampler } // container ingress-monitor-samplers container egress-monitors { description "Apply flow monitor on outgoing packets"; list egress-monitor { key "monitor-map-name"; description "Specify a flow monitor for packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } } // list egress-monitor } // container egress-monitors container egress-monitor-samplers { description "Specify a flow monitor and sampler for outgoing packets"; list egress-monitor-sampler { key "monitor-map-name sampler-map-name"; description "Specify a flow monitor and sampler for outgoing packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } leaf sampler-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a sampler for packets"; } } // list egress-monitor-sampler } // container egress-monitor-samplers } // container monitor } // container map-t } // container flow container mpls { description "MPLS interface subcommands"; leaf mtu { type uint32 { range "68..65535"; } description "Set the MPLS MTU for the interface"; } container label-security { description "MPLS label-security for the interface"; container rpf { presence "Indicates a rpf node is configured."; description "MPLS RPF for incoming packets"; } // container rpf container multi-label-packet { description "Handling incoming packets with multiple labels on the stack"; container drop { presence "Indicates a drop node is configured."; description "Drop packets with multiple labels on the stack"; } // container drop } // container multi-label-packet } // container label-security } // container mpls container host-routing { tailf:dependency "../a1:interface-name"; when "../a1:interface-name[starts-with(text(),'BVI')]"; presence "Indicates a host-routing node is configured."; description "Enable host-routing on this interface"; } // container host-routing container gratuitous-announcement-timer { presence "Indicates a gratuitous-announcement-timer node is configured."; description "Enable gratuitous announcement (GARP) timer on this interface"; leaf interval { type uint32 { range "60..30000"; } description "Gratuitous announcement (GARP/NA) timer interval in seconds"; } leaf jitter { type uint32 { range "0..100"; } description "Gratuitous announcement (GARP/NA) timer jitter percentage"; } } // container gratuitous-announcement-timer container pw-ether { tailf:dependency "../a1:interface-name"; when "../a1:interface-name[starts-with(text(),'PW-Ether')]"; description "Configuration for pw-ether interface"; container attach { description "Attach to an interface list"; leaf generic-interface-list { type xr:Cisco-ios-xr-string { length "1..32"; } description "Interface List"; } } // container attach leaf l2overhead { type uint32 { range "1..64"; } description "Set Layer 2 Overhead size"; } } // container pw-ether container pw-iw { tailf:dependency "../a1:interface-name"; when "../a1:interface-name[starts-with(text(),'PW-IW')]"; description "Configuration for pw-iw interface"; container attach { description "Attach to an interface list"; leaf generic-interface-list { type xr:Cisco-ios-xr-string { length "1..32"; } description "Interface List"; } } // container attach leaf l2overhead { type uint32 { range "1..64"; } description "Set Layer 2 Overhead size"; } } // container pw-iw container arp { description "Configure Address Resolution Protocol"; leaf timeout { type uint32 { range "30..2144448000"; } description "Set ARP cache timeout"; } leaf purge-delay { type uint32 { range "1..65535"; } description "Delay purging ARP entries when the interface goes down"; } container learning { description "Configuration for dynamic learning of ARP entries"; container disable { presence "Indicates a disable node is configured."; description "Disable dynamic learning of ARP entries"; } // container disable container local { presence "Indicates a local node is configured."; description "Enable dynamic learning only for local subnet only"; } // container local container solicited { presence "Indicates a solicited node is configured."; description "Enable dynamic learning only for solicited ARP packets"; } // container solicited } // container learning container gratuitous { description "Configure the handling of Gratuitous ARP packets"; container ignore { presence "Indicates a ignore node is configured."; description "Ignore the receipt of Gratuitous ARP packets"; } // container ignore } // container gratuitous container drop-adjacency { if-feature drop-adjacency; description "Set ARP drop adjacency timeout"; leaf timeout { type uint32 { range "900..7200"; } default "3600"; description "Specify timeout"; } } // container drop-adjacency } // container arp container proxy-arp { presence "Indicates a proxy-arp node is configured."; description "Enable proxy ARP"; } // container proxy-arp container local-proxy-arp { presence "Indicates a local-proxy-arp node is configured."; description "Enable local proxy ARP"; } // container local-proxy-arp container monitor-sessions { description "Monitor-session configuration commands"; list monitor-session { must "ethernet or ipv4 or ipv6 or mpls-ipv4 or mpls-ipv6"; key "session-name"; description "Monitor-session configuration commands"; leaf session-name { type string { length "1..79"; } description "Monitor-session configuration commands"; } container ethernet { must "not(../ipv4 or ../ipv6 or ../mpls-ipv4 or ../mpls-ipv6)"; presence "Indicates a ethernet node is configured."; description "Replicate Ethernet traffic"; } // container ethernet container ipv4 { must "not(../ethernet or ../ipv6 or ../mpls-ipv4 or ../mpls-ipv6)"; presence "Indicates a ipv4 node is configured."; description "Replicate IPv4 traffic"; } // container ipv4 container ipv6 { must "not(../ipv4 or ../ethernet or ../mpls-ipv4 or ../mpls-ipv6)"; presence "Indicates a ipv6 node is configured."; description "Replicate IPv6 traffic"; } // container ipv6 container mpls-ipv4 { must "not(../ipv4 or ../ipv6 or ../ethernet or ../mpls-ipv6)"; presence "Indicates a mpls-ipv4 node is configured."; description "Replicate MPLS-IPv4 traffic"; } // container mpls-ipv4 container mpls-ipv6 { must "not(../ipv4 or ../ipv6 or ../mpls-ipv4 or ../ethernet)"; presence "Indicates a mpls-ipv6 node is configured."; description "Replicate MPLS-IPv6 traffic"; } // container mpls-ipv6 container direction { description "Specify the direction of traffic to replicate"; container rx-only { must "not(../tx-only)"; presence "Indicates a rx-only node is configured."; description "Replicate only received (ingress) traffic"; } // container rx-only container tx-only { must "not(../rx-only)"; presence "Indicates a tx-only node is configured."; description "Replicate only transmitted (egress) traffic"; } // container tx-only } // container direction container port-level { presence "Indicates a port-level node is configured."; description "Replicate traffic on all interfaces of a main interface"; } // container port-level container acl { presence "Indicates a acl node is configured."; description "Enable acl based mirroring"; leaf acl-name { type xr:Cisco-ios-xr-string { length "1..80"; } description "ACL name"; } } // container acl leaf acl-ipv4 { type xr:Cisco-ios-xr-string { length "1..80"; } description "Enable IPv4 ACL based mirroring"; } leaf acl-ipv6 { type xr:Cisco-ios-xr-string { length "1..80"; } description "Enable IPv6 ACL based mirroring"; } container mirror { description "Set the mirroring properties of this interface"; leaf first { type uint32 { range "1..10000"; } description "Enable mirroring on the first portion of a packet"; } leaf interval { type enumeration { enum "512" { value 1; description "Mirror 1 in every 512 packets"; } enum "1K" { value 2; description "Mirror 1 in every 1024 packets"; } enum "2K" { value 3; description "Mirror 1 in every 2048 packets"; } enum "4K" { value 4; description "Mirror 1 in every 4096 packets"; } enum "8K" { value 5; description "Mirror 1 in every 8192 packets"; } enum "16K" { value 6; description "Mirror 1 in every 16384 packets"; } } description "Enable mirroring of every Nth packet"; } } // container mirror } // list monitor-session } // container monitor-sessions container monitor-session-deprecated { description "Monitor-session deprecated configuration commands"; container ethernet { presence "Indicates a ethernet node is configured."; description "Replicate Ethernet traffic"; leaf session-name { type xr:Cisco-ios-xr-string { length "1..79"; } mandatory true; description "Session Name"; } container direction { description "Specify the direction of traffic to replicate"; container rx-only { must "not(../tx-only)"; presence "Indicates a rx-only node is configured."; description "Replicate only received (ingress) traffic"; } // container rx-only container tx-only { must "not(../rx-only)"; presence "Indicates a tx-only node is configured."; description "Replicate only transmitted (egress) traffic"; } // container tx-only } // container direction container acl { presence "Indicates a acl node is configured."; description "Enable acl based mirroring"; leaf acl-name { type xr:Cisco-ios-xr-string { length "1..80"; } description "ACL name"; } } // container acl leaf acl-ipv4 { type xr:Cisco-ios-xr-string { length "1..80"; } description "Enable IPv4 ACL based mirroring"; } leaf acl-ipv6 { type xr:Cisco-ios-xr-string { length "1..80"; } description "Enable IPv6 ACL based mirroring"; } container mirror { description "Set the mirroring properties of this interface"; leaf first { type uint32 { range "1..10000"; } description "Enable mirroring on the first portion of a packet"; } leaf interval { type enumeration { enum "512" { value 1; description "Mirror 1 in every 512 packets"; } enum "1K" { value 2; description "Mirror 1 in every 1024 packets"; } enum "2K" { value 3; description "Mirror 1 in every 2048 packets"; } enum "4K" { value 4; description "Mirror 1 in every 4096 packets"; } enum "8K" { value 5; description "Mirror 1 in every 8192 packets"; } enum "16K" { value 6; description "Mirror 1 in every 16384 packets"; } } description "Enable mirroring of every Nth packet"; } } // container mirror container port-level { presence "Indicates a port-level node is configured."; description "Replicate traffic on all interfaces of a main interface"; } // container port-level } // container ethernet container ipv4 { presence "Indicates a ipv4 node is configured."; description "Replicate IPv4 traffic"; leaf session-name { type xr:Cisco-ios-xr-string { length "1..79"; } mandatory true; description "Session Name"; } container direction { description "Specify the direction of traffic to replicate"; container rx-only { must "not(../tx-only)"; presence "Indicates a rx-only node is configured."; description "Replicate only received (ingress) traffic"; } // container rx-only container tx-only { must "not(../rx-only)"; presence "Indicates a tx-only node is configured."; description "Replicate only transmitted (egress) traffic"; } // container tx-only } // container direction container acl { presence "Indicates a acl node is configured."; description "Enable acl based mirroring"; leaf acl-name { type xr:Cisco-ios-xr-string { length "1..80"; } description "ACL name"; } } // container acl leaf acl-ipv4 { type xr:Cisco-ios-xr-string { length "1..80"; } description "Enable IPv4 ACL based mirroring"; } leaf acl-ipv6 { type xr:Cisco-ios-xr-string { length "1..80"; } description "Enable IPv6 ACL based mirroring"; } container mirror { description "Set the mirroring properties of this interface"; leaf first { type uint32 { range "1..10000"; } description "Enable mirroring on the first portion of a packet"; } leaf interval { type enumeration { enum "512" { value 1; description "Mirror 1 in every 512 packets"; } enum "1K" { value 2; description "Mirror 1 in every 1024 packets"; } enum "2K" { value 3; description "Mirror 1 in every 2048 packets"; } enum "4K" { value 4; description "Mirror 1 in every 4096 packets"; } enum "8K" { value 5; description "Mirror 1 in every 8192 packets"; } enum "16K" { value 6; description "Mirror 1 in every 16384 packets"; } } description "Enable mirroring of every Nth packet"; } } // container mirror container port-level { presence "Indicates a port-level node is configured."; description "Replicate traffic on all interfaces of a main interface"; } // container port-level } // container ipv4 container ipv6 { presence "Indicates a ipv6 node is configured."; description "Replicate IPv6 traffic"; leaf session-name { type xr:Cisco-ios-xr-string { length "1..79"; } mandatory true; description "Session Name"; } container direction { description "Specify the direction of traffic to replicate"; container rx-only { must "not(../tx-only)"; presence "Indicates a rx-only node is configured."; description "Replicate only received (ingress) traffic"; } // container rx-only container tx-only { must "not(../rx-only)"; presence "Indicates a tx-only node is configured."; description "Replicate only transmitted (egress) traffic"; } // container tx-only } // container direction container acl { presence "Indicates a acl node is configured."; description "Enable acl based mirroring"; leaf acl-name { type xr:Cisco-ios-xr-string { length "1..80"; } description "ACL name"; } } // container acl leaf acl-ipv4 { type xr:Cisco-ios-xr-string { length "1..80"; } description "Enable IPv4 ACL based mirroring"; } leaf acl-ipv6 { type xr:Cisco-ios-xr-string { length "1..80"; } description "Enable IPv6 ACL based mirroring"; } container mirror { description "Set the mirroring properties of this interface"; leaf first { type uint32 { range "1..10000"; } description "Enable mirroring on the first portion of a packet"; } leaf interval { type enumeration { enum "512" { value 1; description "Mirror 1 in every 512 packets"; } enum "1K" { value 2; description "Mirror 1 in every 1024 packets"; } enum "2K" { value 3; description "Mirror 1 in every 2048 packets"; } enum "4K" { value 4; description "Mirror 1 in every 4096 packets"; } enum "8K" { value 5; description "Mirror 1 in every 8192 packets"; } enum "16K" { value 6; description "Mirror 1 in every 16384 packets"; } } description "Enable mirroring of every Nth packet"; } } // container mirror container port-level { presence "Indicates a port-level node is configured."; description "Replicate traffic on all interfaces of a main interface"; } // container port-level } // container ipv6 container mpls-ipv4 { presence "Indicates a mpls-ipv4 node is configured."; description "Replicate MPLS-IPv4 traffic"; leaf session-name { type xr:Cisco-ios-xr-string { length "1..79"; } mandatory true; description "Session Name"; } container direction { description "Specify the direction of traffic to replicate"; container rx-only { must "not(../tx-only)"; presence "Indicates a rx-only node is configured."; description "Replicate only received (ingress) traffic"; } // container rx-only container tx-only { must "not(../rx-only)"; presence "Indicates a tx-only node is configured."; description "Replicate only transmitted (egress) traffic"; } // container tx-only } // container direction container acl { presence "Indicates a acl node is configured."; description "Enable acl based mirroring"; leaf acl-name { type xr:Cisco-ios-xr-string { length "1..80"; } description "ACL name"; } } // container acl leaf acl-ipv4 { type xr:Cisco-ios-xr-string { length "1..80"; } description "Enable IPv4 ACL based mirroring"; } leaf acl-ipv6 { type xr:Cisco-ios-xr-string { length "1..80"; } description "Enable IPv6 ACL based mirroring"; } container mirror { description "Set the mirroring properties of this interface"; leaf first { type uint32 { range "1..10000"; } description "Enable mirroring on the first portion of a packet"; } leaf interval { type enumeration { enum "512" { value 1; description "Mirror 1 in every 512 packets"; } enum "1K" { value 2; description "Mirror 1 in every 1024 packets"; } enum "2K" { value 3; description "Mirror 1 in every 2048 packets"; } enum "4K" { value 4; description "Mirror 1 in every 4096 packets"; } enum "8K" { value 5; description "Mirror 1 in every 8192 packets"; } enum "16K" { value 6; description "Mirror 1 in every 16384 packets"; } } description "Enable mirroring of every Nth packet"; } } // container mirror container port-level { presence "Indicates a port-level node is configured."; description "Replicate traffic on all interfaces of a main interface"; } // container port-level } // container mpls-ipv4 container mpls-ipv6 { presence "Indicates a mpls-ipv6 node is configured."; description "Replicate MPLS-IPv6 traffic"; leaf session-name { type xr:Cisco-ios-xr-string { length "1..79"; } mandatory true; description "Session Name"; } container direction { description "Specify the direction of traffic to replicate"; container rx-only { must "not(../tx-only)"; presence "Indicates a rx-only node is configured."; description "Replicate only received (ingress) traffic"; } // container rx-only container tx-only { must "not(../rx-only)"; presence "Indicates a tx-only node is configured."; description "Replicate only transmitted (egress) traffic"; } // container tx-only } // container direction container acl { presence "Indicates a acl node is configured."; description "Enable acl based mirroring"; leaf acl-name { type xr:Cisco-ios-xr-string { length "1..80"; } description "ACL name"; } } // container acl leaf acl-ipv4 { type xr:Cisco-ios-xr-string { length "1..80"; } description "Enable IPv4 ACL based mirroring"; } leaf acl-ipv6 { type xr:Cisco-ios-xr-string { length "1..80"; } description "Enable IPv6 ACL based mirroring"; } container mirror { description "Set the mirroring properties of this interface"; leaf first { type uint32 { range "1..10000"; } description "Enable mirroring on the first portion of a packet"; } leaf interval { type enumeration { enum "512" { value 1; description "Mirror 1 in every 512 packets"; } enum "1K" { value 2; description "Mirror 1 in every 1024 packets"; } enum "2K" { value 3; description "Mirror 1 in every 2048 packets"; } enum "4K" { value 4; description "Mirror 1 in every 4096 packets"; } enum "8K" { value 5; description "Mirror 1 in every 8192 packets"; } enum "16K" { value 6; description "Mirror 1 in every 16384 packets"; } } description "Enable mirroring of every Nth packet"; } } // container mirror container port-level { presence "Indicates a port-level node is configured."; description "Replicate traffic on all interfaces of a main interface"; } // container port-level } // container mpls-ipv6 } // container monitor-session-deprecated leaf vrf { tailf:dependency "../a1:interface-name"; when "../a1:interface-name[not(starts-with(text(),'tunnel-'))] and ../a1:interface-name[not(starts-with(text(),'cem'))] and ../a1:interface-name[not(starts-with(text(),'nve'))]"; type xr:Cisco-ios-xr-string { length "1..32"; } description "Set VRF in which the interface operates"; } container address-family { tailf:dependency "../a1:interface-name"; when "../a1:interface-name[not(starts-with(text(),'pw-ether'))] and ../a1:interface-name[not(starts-with(text(),'pw-iw'))] and ../a1:interface-name[not(starts-with(text(),'cem'))]"; description "AFI/SAFI configuration"; container ipv4 { description "IPv4 address family"; container multicast { presence "Indicates a multicast node is configured."; description "Multicast topology"; container default-topology { presence "Indicates a default-topology node is configured."; description "Multicast default topology"; } // container default-topology container topologies { description "Specify a non-default topology"; list topology { key "topology-name"; description "Specify a non-default topology"; leaf topology-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a non-default topology"; } } // list topology } // container topologies } // container multicast } // container ipv4 container ipv6 { description "IPv6 address family"; container multicast { presence "Indicates a multicast node is configured."; description "Multicast topology"; container default-topology { presence "Indicates a default-topology node is configured."; description "Multicast default topology"; } // container default-topology container topologies { description "Specify a non-default topology"; list topology { key "topology-name"; description "Specify a non-default topology"; leaf topology-name { type string { length "1..32"; } description "Specify a non-default topology"; } } // list topology } // container topologies } // container multicast } // container ipv6 } // container address-family container lldp { presence "Indicates a lldp node is configured."; description "LLDP interface configuration commands"; container transmit { description "Disable LLDP TX on an interface"; container disable { presence "Indicates a disable node is configured."; description "Disable LLDP TX on an interface"; } // container disable } // container transmit container receive { description "Disable LLDP RX on an interface"; container disable { presence "Indicates a disable node is configured."; description "Disable LLDP RX on an interface"; } // container disable } // container receive container destination { description "Configure LLDP Destination MAC on the interface"; container mac-address { presence "Indicates a mac-address node is configured."; description "Destination MAC address on the interface"; container ieee-nearest-non-tmpr-bridge { must "not(../ieee-nearest-bridge)"; presence "Indicates a ieee-nearest-non-tmpr-bridge node is configured."; description "IEEE Non-TMPR Bridge MAC address, 01:80:C2:00:00:03"; } // container ieee-nearest-non-tmpr-bridge container ieee-nearest-bridge { must "not(../ieee-nearest-non-tmpr-bridge)"; presence "Indicates a ieee-nearest-bridge node is configured."; description "Default LLDP Destination MAC address, 01:80:C2:00:00:0E"; } // container ieee-nearest-bridge } // container mac-address } // container destination container enable { presence "Indicates a enable node is configured."; description "Enable LLDP TX and RX on an interface"; } // container enable } // container lldp container csi-ether { tailf:dependency "../a1:interface-name"; when "../a1:interface-name[starts-with(text(),'CSI-Ether')]"; description "CSI-Ether interface subcommands"; leaf mtu { type uint32 { range "64..9500"; } description "Set the CSI Ether MA MTU"; } } // container csi-ether 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 container bundle { 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')] or ../a1:interface-name[starts-with(text(),'Bundle-')]"; description "Bundle interface commands"; container minimum-active { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[starts-with(text(),'Bundle-')]"; description "Set the minimum criteria for the bundle to be active"; leaf links { type uint32 { range "1..64"; } description "Set the number of active links needed to bring up this bundle"; } container bandwidth { description "Set the bandwidth needed to bring up this bundle"; leaf bandwidth { type uint32 { range "1..4294967295"; } description "Set the bandwidth (in kbps) needed to bring up this bundle"; } leaf kbps { type uint32 { range "1..4294967295"; } description "Set the bandwidth in kbps"; } leaf mbps { type uint32 { range "1..4294967295"; } description "Set the bandwidth in mbps"; } leaf gbps { type uint32 { range "1..4294967295"; } description "Set the bandwidth in gbps"; } } // container bandwidth } // container minimum-active container maximum-active { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[starts-with(text(),'Bundle-')]"; description "Set a limit on the number of links that can be active"; container links { presence "Indicates a links node is configured."; description "Set the maximum number of active links in this bundle"; leaf maximum-number { type uint32 { range "1..64"; } mandatory true; description "Set the maximum number of active links in this bundle"; } container hot-standby { presence "Indicates a hot-standby node is configured."; description "Hot-standby behaviour (non-standard, only effective on links with LACP enabled)"; } // container hot-standby } // container links } // container maximum-active leaf wait-while { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[starts-with(text(),'Bundle-')]"; type uint32 { range "0..2000"; } description "Set the wait-while timeout for members of this bundle"; } container shutdown { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[starts-with(text(),'Bundle-')]"; presence "Indicates a shutdown node is configured."; description "Bring all links in the bundle down to Standby state"; } // container shutdown container load-balancing { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[starts-with(text(),'Bundle-')]"; description "Load balancing commands on a bundle"; container hash { description "Select the hash function used for traffic forwarded over the bundle"; container src-ip { presence "Indicates a src-ip node is configured."; description "Use the source IP as the hash function"; } // container src-ip container dst-ip { presence "Indicates a dst-ip node is configured."; description "Use the destination IP as the hash function"; } // container dst-ip } // container hash container localize { description "Restrict forwarding to members in the same rack where possible"; container threshold { description "The threshold below which traffic is no longer localized"; leaf links { type uint32 { range "1..64"; } description "Set a threshold of active member links per rack"; } } // container threshold } // container localize } // container load-balancing leaf lacp-delay { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[starts-with(text(),'Bundle-')]"; type uint32 { range "1000..15000"; } description "Set the lacp-delay timeout for members of this bundle"; } container logging { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[starts-with(text(),'Bundle-')]"; description "logging events for the members of this bundle"; container oos { presence "Indicates a oos node is configured."; description "Enable OOS logging events for the members of this bundle"; } // container oos } // container logging container lacp-fallback { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[starts-with(text(),'Bundle-')]"; description "Set the lacp-fallback for members of this bundle"; leaf timeout { type uint32 { range "1..120"; } description "Set the timeout for lacp-fallback"; } } // container lacp-fallback container id { 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')]"; presence "Indicates a id node is configured."; description "Add the port to an aggregated interface."; leaf bundle-id { type uint32 { range "1..65535"; } mandatory true; description "Add the port to an aggregated interface."; } leaf mode { type enumeration { enum "on" { value 1; description "Do not run LACP over the port."; } enum "active" { value 2; description "Run LACP in active mode over the port."; } enum "passive" { value 3; description "Run LACP in passive mode over the port."; } enum "inherit" { value 4; description "Run LACP as configured in bundle."; } } mandatory true; description "Specify the mode of operation."; } } // container id leaf port-priority { 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 uint32 { range "1..65535"; } description "Priority for this port. Lower value is higher priority."; } } // container bundle container bfd { tailf:dependency "../a1:interface-name"; when "../a1:interface-name[starts-with(text(),'Bundle-')]"; description "BFD configuration on a bundle interface"; container address-family { description "Set configuration for a given address family"; container ipv4 { description "Set configuration for the IPv4 address family"; leaf destination { type inet:ipv4-address-no-zone; description "Set the destination address for the BFD session"; } container echo { description "Set the configuration for the echo mode of BFD"; leaf minimum-interval { type uint32 { range "15..2000"; } description "Set the preferred minimum interval for the BFD session"; } } // container echo leaf minimum-interval { type uint32 { range "3..30000"; } description "Set the preferred minimum interval for the BFD session"; } leaf multiplier { type uint32 { range "2..50"; } description "Set the preferred multiplier for the BFD session"; } container fast-detect { presence "Indicates a fast-detect node is configured."; description "Enable fast detection using BFD on bundle members"; } // container fast-detect container timers { description "Set the timers that determine when a BFD session defaults to down"; leaf start { type uint32 { range "1..3600"; } description "The time since starting a BFD session before it is considered to have gone down"; } leaf nbr-unconfig { type uint32 { range "1..3600"; } description "The time since a BFD signalled that a peer session is unconfigured before it is considered to have gone down"; } } // container timers } // container ipv4 container ipv6 { description "Set configuration for the IPv6 address family"; leaf destination { type inet:ipv6-address-no-zone; description "Set the destination address for the BFD session"; } leaf minimum-interval { type uint32 { range "3..30000"; } description "Set the preferred minimum interval for the BFD session"; } leaf multiplier { type uint32 { range "2..50"; } description "Set the preferred multiplier for the BFD session"; } container fast-detect { presence "Indicates a fast-detect node is configured."; description "Enable fast detection using BFD on bundle members"; } // container fast-detect container timers { description "Set the timers that determine when a BFD session defaults to down"; leaf start { type uint32 { range "1..3600"; } description "The time since starting a BFD session before it is considered to have gone down"; } leaf nbr-unconfig { type uint32 { range "1..3600"; } description "The time since a BFD signalled that a peer session is unconfigured before it is considered to have gone down"; } } // container timers } // container ipv6 } // container address-family container mode { must "cisco or ietf"; presence "Indicates a mode node is configured."; description "Standard used for per-member BFD"; container cisco { presence "Indicates a cisco node is configured."; description "Use Cisco standard for BoB"; } // container cisco container ietf { presence "Indicates a ietf node is configured."; description "Use IETF standard for BoB"; } // container ietf } // container mode } // container bfd container lacp { 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')] or ../a1:interface-name[starts-with(text(),'Bundle-')]"; description "Bundle interface LACP commands"; container switchover { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[starts-with(text(),'Bundle-')]"; description "Modify behavior for switching between links in this bundle"; leaf suppress-flaps { type uint32 { range "100..65535"; } description "Set the time for which to suppress flaps during a LACP switchover"; } } // container switchover container churn { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[starts-with(text(),'Bundle-')]"; description "Settings for LACP churn detection"; leaf logging { type enumeration { enum "actor" { value 1; description "Log actor churn events only"; } enum "partner" { value 2; description "Log partner churn events only"; } enum "both" { value 3; description "Log actor and partner churn events"; } } description "Set parameters for logging of churn events"; } } // container churn leaf collector-max-delay { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[starts-with(text(),'Bundle-')]"; type uint32 { range "0..65535"; } description "Collector max delay to be signaled to the LACP partner"; } container timeout { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[starts-with(text(),'Bundle-')]"; 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 "Set the timeout to use before declaring actor churn"; } leaf partner-churn { type uint32 { range "0..120"; } description "Set the timeout to use before declaring partner churn"; } } // container timeout container cisco { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[starts-with(text(),'Bundle-')]"; description "Cisco LACP extensions"; container enable { presence "Indicates a enable node is configured."; description "Enable the use of Cisco LACP extensions"; container link-order { description "Link ordering numbers processing"; container signaled { presence "Indicates a signaled node is configured."; description "Turn on processing of link ordering numbers"; } // container signaled } // container link-order } // container enable } // container cisco container non-revertive { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[starts-with(text(),'Bundle-')]"; presence "Indicates a non-revertive node is configured."; description "Set the bundle to lacp non-revertive mode"; } // container non-revertive leaf mode { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[starts-with(text(),'Bundle-')]"; type enumeration { enum "on" { value 0; description "Do not run LACP over the port."; } enum "active" { value 1; description "Run LACP in active mode over the port."; } enum "passive" { value 2; description "Run LACP in passive mode over the port."; } } description " Set the LACP mode on bundle to be used by its member link"; } container system { tailf:dependency "../../a1:interface-name"; when "../../a1:interface-name[starts-with(text(),'Bundle-')]"; description "Set the default system parameters for LACP bundles"; leaf priority { type uint32 { range "1..65535"; } description "The system priority to use in LACP negotiations."; } leaf mac { type yang:mac-address; description "Configure the system ID to use in LACP negotiations for this bundle."; } } // container system container period { must "transmission-id or short"; presence "Indicates a period node is configured."; description "Set the period on bundle to be used by its member link"; leaf transmission-id { type uint32 { range "2..30000"; } description " Set the period on bundle to be used by its member link"; } container short { presence "Indicates a short node is configured."; description "set the short period on bundle"; } // container short } // container period leaf default-threshold { 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 uint32 { range "1..3"; } description "Set the LACP packet default threshold"; } leaf expire-threshold { 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 uint32 { range "1..3"; } description "Set the LACP packet expire threshold"; } } // container lacp container mlacp { tailf:dependency "../a1:interface-name"; when "../a1:interface-name[starts-with(text(),'Bundle-')]"; description "Multi-chassis LACP per-interface commands"; leaf iccp-group { type uint32 { range "1..4294967295"; } description "ICCP redundancy group related commands for this bundle."; } leaf port-priority { type uint32 { range "1..65535"; } description "Set the priority for all member links on this device when running mLACP."; } container switchover { description "Set the parameters for performing a switchover to/from the mLACP peer"; leaf type { type enumeration { enum "brute-force" { value 1; description "Force switchover by disabling all local member links"; } enum "revertive" { value 2; description "Revert based on configured priority values"; } } description "Set the type of switchover operation to use"; } container maximize { description "Parameters for switchover behavior to maximize operational links/bandwidth"; container links { presence "Indicates a links node is configured."; description "Compare the number of operational links"; leaf threshold { type uint32 { range "1..64"; } description "Set the threshold below which to switch to the peer if it has more links available"; } } // container links container bandwidth { presence "Indicates a bandwidth node is configured."; description "Compare the total bandwidth of operational links"; leaf threshold { type uint64 { range "1..18446744073709551615"; } description "Set the threshold below which to switch to the peer if it has more bandwidth available"; } } // container bandwidth } // container maximize leaf recovery-delay { type uint32 { range "0..65535"; } description "Specify delay before bundle becoming active after recovery from failure"; } } // container switchover } // container mlacp container cdp { presence "Indicates a cdp node is configured."; description "Enable CDP on an interface"; } // container cdp container cdp-mac-address { description "Configure CDP MAC address on interface"; container ethernet-slow-protocols-mac { presence "Indicates a ethernet-slow-protocols-mac node is configured."; description "Ethernet Slow-Protocols MAC, 01:80:c2:00:00:02"; } // container ethernet-slow-protocols-mac } // container cdp-mac-address container frequency { 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(),'TwentyFiveGigE')] or ../a1:interface-name[starts-with(text(),'FortyGigE')] or ../a1:interface-name[starts-with(text(),'FiftyGigE')] 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(),'CPRIoE')]"; description "Frequency Synchronization configuration"; container synchronization { presence "Indicates a synchronization node is configured."; description "Frequency Synchronization configuration"; container ssm { description "SSM configuration commands"; container disable { presence "Indicates a disable node is configured."; description "Disable sending of SSMs"; } // container disable } // container ssm leaf priority { type uint32 { range "1..254"; } description "Source priority"; } leaf time-of-day-priority { type uint32 { range "1..254"; } description "Source time-of-day priority"; } container quality { description "Quality level configuration"; container transmit { description "Set the quality level to be transmitted"; container lowest { description "Specify the lowest acceptable QL value"; container itu-t { description "ITU-T QL options"; container option { description "ITU-T QL options"; leaf one { type enumeration { enum "prc" { value 22; description "ITU-T Option 1: Primary reference clock"; } enum "prtc" { value 21; description "ITU-T Option 1: Primary reference timing clock"; } enum "e-prtc" { value 20; description "ITU-T Option 1: Enhanced primary reference timing clock"; } enum "ssu-a" { value 23; description "ITU-T Option 1: Type I or V subordinate clock"; } enum "ssu-b" { value 24; description "ITU-T Option 1: Type IV subordinate clock"; } enum "sec" { value 27; description "ITU-T Option 1: SONET equipment clock"; } enum "e-eec" { value 25; description "ITU-T Option 1: Enhanced ethernet equipment clock"; } enum "eec1" { value 26; description "ITU-T Option 1: Ethernet equipment clock"; } enum "dnu" { value 1; description "This signal should not be used for synchronization"; } } must "not(../two/generation/one or ../two/generation/two or ../../../../highest/itu-t/option/two/generation/one or ../../../../highest/itu-t/option/two/generation/two or ../../../../exact/itu-t/option/one or ../../../../exact/itu-t/option/two/generation/one or ../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 1"; } container two { description "ITU-T QL option 2"; container generation { description "ITU-T QL option 2 generation"; leaf one { type enumeration { enum "prs" { value 42; description "ITU-T Option 2, Generation 1: Primary reference source"; } enum "prtc" { value 41; description "ITU-T Option 2, Generation 1: Primary reference timing clock"; } enum "e-prtc" { value 40; description "ITU-T Option 2, Generation 1: Enhanced primary reference timing clock"; } enum "stu" { value 43; description "ITU-T Option 2, Generation 1: Synchronized - traceability unknown"; } enum "st2" { value 44; description "ITU-T Option 2, Generation 1: Stratum 2"; } enum "st3" { value 45; description "ITU-T Option 2, Generation 1: Stratum 3"; } enum "smc" { value 48; description "ITU-T Option 2, Generation 1: SONET clock self timed"; } enum "eec2" { value 47; description "ITU-T Option 2, Generation 1: Ethernet equipment clock"; } enum "e-eec" { value 46; description "ITU-T Option 2, Generation 1: Ethernet ethernet equipment clock"; } enum "st4" { value 49; description "ITU-T Option 2, Generation 1: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../two or ../../../../../../highest/itu-t/option/one or ../../../../../../highest/itu-t/option/two/generation/two or ../../../../../../exact/itu-t/option/one or ../../../../../../exact/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 1"; } leaf two { type enumeration { enum "prs" { value 62; description "ITU-T Option 2, Generation 2: Primary reference source"; } enum "prtc" { value 61; description "ITU-T Option 2, Generation 2: Primary reference timing clock"; } enum "e-prtc" { value 60; description "ITU-T Option 2, Generation 2: Enhanced primary reference timing clock"; } enum "stu" { value 63; description "ITU-T Option 2, Generation 2: Synchronized - traceability unknown"; } enum "st2" { value 64; description "ITU-T Option 2, Generation 2: Stratum 2"; } enum "tnc" { value 65; description "ITU-T Option 2, Generation 2: Transit node clock"; } enum "st3e" { value 66; description "ITU-T Option 2, Generation 2: Stratum 3E"; } enum "st3" { value 67; description "ITU-T Option 2, Generation 2: Stratum 3"; } enum "smc" { value 70; description "ITU-T Option 2, Generation 2: SONET clock self timed"; } enum "eec2" { value 69; description "ITU-T Option 2, Generation 2: Ethernet equipment clock"; } enum "e-eec" { value 68; description "ITU-T Option 2, Generation 2: Ethernet ethernet equipment clock"; } enum "st4" { value 71; description "ITU-T Option 2, Generation 2: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../one or ../../../../../../highest/itu-t/option/one or ../../../../../../highest/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/one or ../../../../../../exact/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 2"; } } // container generation } // container two } // container option } // container itu-t } // container lowest container highest { description "Specify the highest acceptable QL value"; container itu-t { description "ITU-T QL options"; container option { description "ITU-T QL options"; leaf one { type enumeration { enum "prc" { value 22; description "ITU-T Option 1: Primary reference clock"; } enum "prtc" { value 21; description "ITU-T Option 1: Primary reference timing clock"; } enum "e-prtc" { value 20; description "ITU-T Option 1: Enhanced primary reference timing clock"; } enum "ssu-a" { value 23; description "ITU-T Option 1: Type I or V subordinate clock"; } enum "ssu-b" { value 24; description "ITU-T Option 1: Type IV subordinate clock"; } enum "sec" { value 27; description "ITU-T Option 1: SONET equipment clock"; } enum "e-eec" { value 25; description "ITU-T Option 1: Enhanced ethernet equipment clock"; } enum "eec1" { value 26; description "ITU-T Option 1: Ethernet equipment clock"; } enum "dnu" { value 1; description "This signal should not be used for synchronization"; } } must "not(../two/generation/one or ../two/generation/two or ../../../../lowest/itu-t/option/one or ../../../../lowest/itu-t/option/two/generation/one or ../../../../lowest/itu-t/option/two/generation/two or ../../../../exact/itu-t/option/one or ../../../../exact/itu-t/option/two/generation/one or ../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 1"; } container two { description "ITU-T QL option 2"; container generation { description "ITU-T QL option 2 generation"; leaf one { type enumeration { enum "prs" { value 42; description "ITU-T Option 2, Generation 1: Primary reference source"; } enum "prtc" { value 41; description "ITU-T Option 2, Generation 1: Primary reference timing clock"; } enum "e-prtc" { value 40; description "ITU-T Option 2, Generation 1: Enhanced primary reference timing clock"; } enum "stu" { value 43; description "ITU-T Option 2, Generation 1: Synchronized - traceability unknown"; } enum "st2" { value 44; description "ITU-T Option 2, Generation 1: Stratum 2"; } enum "st3" { value 45; description "ITU-T Option 2, Generation 1: Stratum 3"; } enum "smc" { value 48; description "ITU-T Option 2, Generation 1: SONET clock self timed"; } enum "eec2" { value 47; description "ITU-T Option 2, Generation 1: Ethernet equipment clock"; } enum "e-eec" { value 46; description "ITU-T Option 2, Generation 1: Ethernet ethernet equipment clock"; } enum "st4" { value 49; description "ITU-T Option 2, Generation 1: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../two or ../../../../../../lowest/itu-t/option/one or ../../../../../../lowest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/two/generation/two or ../../../../../../exact/itu-t/option/one or ../../../../../../exact/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 1"; } leaf two { type enumeration { enum "prs" { value 62; description "ITU-T Option 2, Generation 2: Primary reference source"; } enum "prtc" { value 61; description "ITU-T Option 2, Generation 2: Primary reference timing clock"; } enum "e-prtc" { value 60; description "ITU-T Option 2, Generation 2: Enhanced primary reference timing clock"; } enum "stu" { value 63; description "ITU-T Option 2, Generation 2: Synchronized - traceability unknown"; } enum "st2" { value 64; description "ITU-T Option 2, Generation 2: Stratum 2"; } enum "tnc" { value 65; description "ITU-T Option 2, Generation 2: Transit node clock"; } enum "st3e" { value 66; description "ITU-T Option 2, Generation 2: Stratum 3E"; } enum "st3" { value 67; description "ITU-T Option 2, Generation 2: Stratum 3"; } enum "smc" { value 70; description "ITU-T Option 2, Generation 2: SONET clock self timed"; } enum "eec2" { value 69; description "ITU-T Option 2, Generation 2: Ethernet equipment clock"; } enum "e-eec" { value 68; description "ITU-T Option 2, Generation 2: Ethernet ethernet equipment clock"; } enum "st4" { value 71; description "ITU-T Option 2, Generation 2: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../one or ../../../../../../lowest/itu-t/option/one or ../../../../../../lowest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/two/generation/two or ../../../../../../exact/itu-t/option/one or ../../../../../../exact/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 2"; } } // container generation } // container two } // container option } // container itu-t } // container highest container exact { description "Specify the exact QL value to use"; container itu-t { description "ITU-T QL options"; container option { description "ITU-T QL options"; leaf one { type enumeration { enum "prc" { value 22; description "ITU-T Option 1: Primary reference clock"; } enum "prtc" { value 21; description "ITU-T Option 1: Primary reference timing clock"; } enum "e-prtc" { value 20; description "ITU-T Option 1: Enhanced primary reference timing clock"; } enum "ssu-a" { value 23; description "ITU-T Option 1: Type I or V subordinate clock"; } enum "ssu-b" { value 24; description "ITU-T Option 1: Type IV subordinate clock"; } enum "sec" { value 27; description "ITU-T Option 1: SONET equipment clock"; } enum "e-eec" { value 25; description "ITU-T Option 1: Enhanced ethernet equipment clock"; } enum "eec1" { value 26; description "ITU-T Option 1: Ethernet equipment clock"; } enum "dnu" { value 1; description "This signal should not be used for synchronization"; } } must "not(../two/generation/one or ../two/generation/two or ../../../../highest/itu-t/option/two/generation/one or ../../../../highest/itu-t/option/two/generation/two or ../../../../lowest/itu-t/option/one or ../../../../lowest/itu-t/option/two/generation/one or ../../../../lowest/itu-t/option/two/generation/two)"; description "ITU-T QL option 1"; } container two { description "ITU-T QL option 2"; container generation { description "ITU-T QL option 2 generation"; leaf one { type enumeration { enum "prs" { value 42; description "ITU-T Option 2, Generation 1: Primary reference source"; } enum "prtc" { value 41; description "ITU-T Option 2, Generation 1: Primary reference timing clock"; } enum "e-prtc" { value 40; description "ITU-T Option 2, Generation 1: Enhanced primary reference timing clock"; } enum "stu" { value 43; description "ITU-T Option 2, Generation 1: Synchronized - traceability unknown"; } enum "st2" { value 44; description "ITU-T Option 2, Generation 1: Stratum 2"; } enum "st3" { value 45; description "ITU-T Option 2, Generation 1: Stratum 3"; } enum "smc" { value 48; description "ITU-T Option 2, Generation 1: SONET clock self timed"; } enum "eec2" { value 47; description "ITU-T Option 2, Generation 1: Ethernet equipment clock"; } enum "e-eec" { value 46; description "ITU-T Option 2, Generation 1: Ethernet ethernet equipment clock"; } enum "st4" { value 49; description "ITU-T Option 2, Generation 1: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../two or ../../../../../../highest/itu-t/option/one or ../../../../../../highest/itu-t/option/two/generation/two or ../../../../../../lowest/itu-t/option/one or ../../../../../../lowest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 1"; } leaf two { type enumeration { enum "prs" { value 62; description "ITU-T Option 2, Generation 2: Primary reference source"; } enum "prtc" { value 61; description "ITU-T Option 2, Generation 2: Primary reference timing clock"; } enum "e-prtc" { value 60; description "ITU-T Option 2, Generation 2: Enhanced primary reference timing clock"; } enum "stu" { value 63; description "ITU-T Option 2, Generation 2: Synchronized - traceability unknown"; } enum "st2" { value 64; description "ITU-T Option 2, Generation 2: Stratum 2"; } enum "tnc" { value 65; description "ITU-T Option 2, Generation 2: Transit node clock"; } enum "st3e" { value 66; description "ITU-T Option 2, Generation 2: Stratum 3E"; } enum "st3" { value 67; description "ITU-T Option 2, Generation 2: Stratum 3"; } enum "smc" { value 70; description "ITU-T Option 2, Generation 2: SONET clock self timed"; } enum "eec2" { value 69; description "ITU-T Option 2, Generation 2: Ethernet equipment clock"; } enum "e-eec" { value 68; description "ITU-T Option 2, Generation 2: Ethernet ethernet equipment clock"; } enum "st4" { value 71; description "ITU-T Option 2, Generation 2: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../one or ../../../../../../highest/itu-t/option/one or ../../../../../../highest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/one or ../../../../../../lowest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 2"; } } // container generation } // container two } // container option } // container itu-t } // container exact } // container transmit container receive { description "Adjust the received quality level"; container lowest { description "Specify the lowest acceptable QL value"; container itu-t { description "ITU-T QL options"; container option { description "ITU-T QL options"; leaf one { type enumeration { enum "prc" { value 22; description "ITU-T Option 1: Primary reference clock"; } enum "prtc" { value 21; description "ITU-T Option 1: Primary reference timing clock"; } enum "e-prtc" { value 20; description "ITU-T Option 1: Enhanced primary reference timing clock"; } enum "ssu-a" { value 23; description "ITU-T Option 1: Type I or V subordinate clock"; } enum "ssu-b" { value 24; description "ITU-T Option 1: Type IV subordinate clock"; } enum "sec" { value 27; description "ITU-T Option 1: SONET equipment clock"; } enum "e-eec" { value 25; description "ITU-T Option 1: Enhanced ethernet equipment clock"; } enum "eec1" { value 26; description "ITU-T Option 1: Ethernet equipment clock"; } enum "dnu" { value 1; description "This signal should not be used for synchronization"; } } must "not(../two/generation/one or ../two/generation/two or ../../../../highest/itu-t/option/two/generation/one or ../../../../highest/itu-t/option/two/generation/two or ../../../../exact/itu-t/option/one or ../../../../exact/itu-t/option/two/generation/one or ../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 1"; } container two { description "ITU-T QL option 2"; container generation { description "ITU-T QL option 2 generation"; leaf one { type enumeration { enum "prs" { value 42; description "ITU-T Option 2, Generation 1: Primary reference source"; } enum "prtc" { value 41; description "ITU-T Option 2, Generation 1: Primary reference timing clock"; } enum "e-prtc" { value 40; description "ITU-T Option 2, Generation 1: Enhanced primary reference timing clock"; } enum "stu" { value 43; description "ITU-T Option 2, Generation 1: Synchronized - traceability unknown"; } enum "st2" { value 44; description "ITU-T Option 2, Generation 1: Stratum 2"; } enum "st3" { value 45; description "ITU-T Option 2, Generation 1: Stratum 3"; } enum "smc" { value 48; description "ITU-T Option 2, Generation 1: SONET clock self timed"; } enum "eec2" { value 47; description "ITU-T Option 2, Generation 1: Ethernet equipment clock"; } enum "e-eec" { value 46; description "ITU-T Option 2, Generation 1: Ethernet ethernet equipment clock"; } enum "st4" { value 49; description "ITU-T Option 2, Generation 1: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../two or ../../../../../../highest/itu-t/option/one or ../../../../../../highest/itu-t/option/two/generation/two or ../../../../../../exact/itu-t/option/one or ../../../../../../exact/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 1"; } leaf two { type enumeration { enum "prs" { value 62; description "ITU-T Option 2, Generation 2: Primary reference source"; } enum "prtc" { value 61; description "ITU-T Option 2, Generation 2: Primary reference timing clock"; } enum "e-prtc" { value 60; description "ITU-T Option 2, Generation 2: Enhanced primary reference timing clock"; } enum "stu" { value 63; description "ITU-T Option 2, Generation 2: Synchronized - traceability unknown"; } enum "st2" { value 64; description "ITU-T Option 2, Generation 2: Stratum 2"; } enum "tnc" { value 65; description "ITU-T Option 2, Generation 2: Transit node clock"; } enum "st3e" { value 66; description "ITU-T Option 2, Generation 2: Stratum 3E"; } enum "st3" { value 67; description "ITU-T Option 2, Generation 2: Stratum 3"; } enum "smc" { value 70; description "ITU-T Option 2, Generation 2: SONET clock self timed"; } enum "eec2" { value 69; description "ITU-T Option 2, Generation 2: Ethernet equipment clock"; } enum "e-eec" { value 68; description "ITU-T Option 2, Generation 2: Ethernet ethernet equipment clock"; } enum "st4" { value 71; description "ITU-T Option 2, Generation 2: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../one or ../../../../../../highest/itu-t/option/one or ../../../../../../highest/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/one or ../../../../../../exact/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 2"; } } // container generation } // container two } // container option } // container itu-t } // container lowest container highest { description "Specify the highest acceptable QL value"; container itu-t { description "ITU-T QL options"; container option { description "ITU-T QL options"; leaf one { type enumeration { enum "prc" { value 22; description "ITU-T Option 1: Primary reference clock"; } enum "prtc" { value 21; description "ITU-T Option 1: Primary reference timing clock"; } enum "e-prtc" { value 20; description "ITU-T Option 1: Enhanced primary reference timing clock"; } enum "ssu-a" { value 23; description "ITU-T Option 1: Type I or V subordinate clock"; } enum "ssu-b" { value 24; description "ITU-T Option 1: Type IV subordinate clock"; } enum "sec" { value 27; description "ITU-T Option 1: SONET equipment clock"; } enum "e-eec" { value 25; description "ITU-T Option 1: Enhanced ethernet equipment clock"; } enum "eec1" { value 26; description "ITU-T Option 1: Ethernet equipment clock"; } enum "dnu" { value 1; description "This signal should not be used for synchronization"; } } must "not(../two/generation/one or ../two/generation/two or ../../../../lowest/itu-t/option/one or ../../../../lowest/itu-t/option/two/generation/one or ../../../../lowest/itu-t/option/two/generation/two or ../../../../exact/itu-t/option/one or ../../../../exact/itu-t/option/two/generation/one or ../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 1"; } container two { description "ITU-T QL option 2"; container generation { description "ITU-T QL option 2 generation"; leaf one { type enumeration { enum "prs" { value 42; description "ITU-T Option 2, Generation 1: Primary reference source"; } enum "prtc" { value 41; description "ITU-T Option 2, Generation 1: Primary reference timing clock"; } enum "e-prtc" { value 40; description "ITU-T Option 2, Generation 1: Enhanced primary reference timing clock"; } enum "stu" { value 43; description "ITU-T Option 2, Generation 1: Synchronized - traceability unknown"; } enum "st2" { value 44; description "ITU-T Option 2, Generation 1: Stratum 2"; } enum "st3" { value 45; description "ITU-T Option 2, Generation 1: Stratum 3"; } enum "smc" { value 48; description "ITU-T Option 2, Generation 1: SONET clock self timed"; } enum "eec2" { value 47; description "ITU-T Option 2, Generation 1: Ethernet equipment clock"; } enum "e-eec" { value 46; description "ITU-T Option 2, Generation 1: Ethernet ethernet equipment clock"; } enum "st4" { value 49; description "ITU-T Option 2, Generation 1: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../two or ../../../../../../lowest/itu-t/option/one or ../../../../../../lowest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/two/generation/two or ../../../../../../exact/itu-t/option/one or ../../../../../../exact/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 1"; } leaf two { type enumeration { enum "prs" { value 62; description "ITU-T Option 2, Generation 2: Primary reference source"; } enum "prtc" { value 61; description "ITU-T Option 2, Generation 2: Primary reference timing clock"; } enum "e-prtc" { value 60; description "ITU-T Option 2, Generation 2: Enhanced primary reference timing clock"; } enum "stu" { value 63; description "ITU-T Option 2, Generation 2: Synchronized - traceability unknown"; } enum "st2" { value 64; description "ITU-T Option 2, Generation 2: Stratum 2"; } enum "tnc" { value 65; description "ITU-T Option 2, Generation 2: Transit node clock"; } enum "st3e" { value 66; description "ITU-T Option 2, Generation 2: Stratum 3E"; } enum "st3" { value 67; description "ITU-T Option 2, Generation 2: Stratum 3"; } enum "smc" { value 70; description "ITU-T Option 2, Generation 2: SONET clock self timed"; } enum "eec2" { value 69; description "ITU-T Option 2, Generation 2: Ethernet equipment clock"; } enum "e-eec" { value 68; description "ITU-T Option 2, Generation 2: Ethernet ethernet equipment clock"; } enum "st4" { value 71; description "ITU-T Option 2, Generation 2: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../one or ../../../../../../lowest/itu-t/option/one or ../../../../../../lowest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/two/generation/two or ../../../../../../exact/itu-t/option/one or ../../../../../../exact/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 2"; } } // container generation } // container two } // container option } // container itu-t } // container highest container exact { description "Specify the exact QL value to use"; container itu-t { description "ITU-T QL options"; container option { description "ITU-T QL options"; leaf one { type enumeration { enum "prc" { value 22; description "ITU-T Option 1: Primary reference clock"; } enum "prtc" { value 21; description "ITU-T Option 1: Primary reference timing clock"; } enum "e-prtc" { value 20; description "ITU-T Option 1: Enhanced primary reference timing clock"; } enum "ssu-a" { value 23; description "ITU-T Option 1: Type I or V subordinate clock"; } enum "ssu-b" { value 24; description "ITU-T Option 1: Type IV subordinate clock"; } enum "sec" { value 27; description "ITU-T Option 1: SONET equipment clock"; } enum "e-eec" { value 25; description "ITU-T Option 1: Enhanced ethernet equipment clock"; } enum "eec1" { value 26; description "ITU-T Option 1: Ethernet equipment clock"; } enum "dnu" { value 1; description "This signal should not be used for synchronization"; } } must "not(../two/generation/one or ../two/generation/two or ../../../../highest/itu-t/option/two/generation/one or ../../../../highest/itu-t/option/two/generation/two or ../../../../lowest/itu-t/option/one or ../../../../lowest/itu-t/option/two/generation/one or ../../../../lowest/itu-t/option/two/generation/two)"; description "ITU-T QL option 1"; } container two { description "ITU-T QL option 2"; container generation { description "ITU-T QL option 2 generation"; leaf one { type enumeration { enum "prs" { value 42; description "ITU-T Option 2, Generation 1: Primary reference source"; } enum "prtc" { value 41; description "ITU-T Option 2, Generation 1: Primary reference timing clock"; } enum "e-prtc" { value 40; description "ITU-T Option 2, Generation 1: Enhanced primary reference timing clock"; } enum "stu" { value 43; description "ITU-T Option 2, Generation 1: Synchronized - traceability unknown"; } enum "st2" { value 44; description "ITU-T Option 2, Generation 1: Stratum 2"; } enum "st3" { value 45; description "ITU-T Option 2, Generation 1: Stratum 3"; } enum "smc" { value 48; description "ITU-T Option 2, Generation 1: SONET clock self timed"; } enum "eec2" { value 47; description "ITU-T Option 2, Generation 1: Ethernet equipment clock"; } enum "e-eec" { value 46; description "ITU-T Option 2, Generation 1: Ethernet ethernet equipment clock"; } enum "st4" { value 49; description "ITU-T Option 2, Generation 1: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../two or ../../../../../../highest/itu-t/option/one or ../../../../../../highest/itu-t/option/two/generation/two or ../../../../../../lowest/itu-t/option/one or ../../../../../../lowest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 1"; } leaf two { type enumeration { enum "prs" { value 62; description "ITU-T Option 2, Generation 2: Primary reference source"; } enum "prtc" { value 61; description "ITU-T Option 2, Generation 2: Primary reference timing clock"; } enum "e-prtc" { value 60; description "ITU-T Option 2, Generation 2: Enhanced primary reference timing clock"; } enum "stu" { value 63; description "ITU-T Option 2, Generation 2: Synchronized - traceability unknown"; } enum "st2" { value 64; description "ITU-T Option 2, Generation 2: Stratum 2"; } enum "tnc" { value 65; description "ITU-T Option 2, Generation 2: Transit node clock"; } enum "st3e" { value 66; description "ITU-T Option 2, Generation 2: Stratum 3E"; } enum "st3" { value 67; description "ITU-T Option 2, Generation 2: Stratum 3"; } enum "smc" { value 70; description "ITU-T Option 2, Generation 2: SONET clock self timed"; } enum "eec2" { value 69; description "ITU-T Option 2, Generation 2: Ethernet equipment clock"; } enum "e-eec" { value 68; description "ITU-T Option 2, Generation 2: Ethernet ethernet equipment clock"; } enum "st4" { value 71; description "ITU-T Option 2, Generation 2: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../one or ../../../../../../highest/itu-t/option/one or ../../../../../../highest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/one or ../../../../../../lowest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 2"; } } // container generation } // container two } // container option } // container itu-t } // container exact } // container receive } // container quality leaf wait-to-restore { type uint32 { range "0..12"; } description "Set the wait-to-restore time"; } container selection { description "Selection configuration commands"; container input { presence "Indicates a input node is configured."; description "Enable this source for selection"; } // container input } // container selection } // container synchronization } // container frequency container ethernet { description "Ethernet per-interface configuration commands"; container oam { presence "Indicates a oam node is configured."; description "OAM configuration"; container link-monitor { description "Enter link-monitor submode"; container symbol-period { description "Symbol-period event configuration"; container window { description "window size for symbol-period event configuration"; leaf milliseconds { type uint32 { range "1000..60000"; } must "not(../symbols/window-size)"; description "Use milliseconds as the units for the symbol-period window"; } container symbols { description "Use symbols as the units for the symbol-period window"; leaf window-size { type uint32 { range "1..4294967295"; } must "not(../../milliseconds)"; description "Size of the symbol-period window in symbols"; } container thousand { must "../window-size and not(../million or ../billion)"; presence "Indicates a thousand node is configured."; description "Use thousands of the specified units"; } // container thousand container million { must "../window-size and not(../thousand or ../billion)"; presence "Indicates a million node is configured."; description "Use millions of the specified units"; } // container million container billion { must "../window-size and not(../thousand or ../million)"; presence "Indicates a billion node is configured."; description "Use billions of the specified units"; } // container billion } // container symbols } // container window container threshold { description "threshold configuration for symbol-period events"; container symbols { description "Use symbols as the units for the symbol-period threshold"; leaf low { type uint32 { range "1..4294967295"; } description "low threshold for symbol-period events"; } leaf high { type uint32 { range "1..4294967295"; } description "high threshold for symbol-period events"; } container thousand { must "(../low or ../high) and not(../million or ../billion)"; presence "Indicates a thousand node is configured."; description "Use thousands of the specified units"; } // container thousand container million { must "(../low or ../high) and not(../thousand or ../billion)"; presence "Indicates a million node is configured."; description "Use millions of the specified units"; } // container million container billion { must "(../low or ../high) and not(../thousand or ../million)"; presence "Indicates a billion node is configured."; description "Use billions of the specified units"; } // container billion } // container symbols container ppm { description "Use parts-per-million as the units for the symbol-period threshold"; leaf low { type uint32 { range "1..1000000"; } description "low threshold for symbol-period events"; } leaf high { type uint32 { range "1..1000000"; } description "high threshold for symbol-period events"; } } // container ppm } // container threshold } // container symbol-period container frame { description "Frame event configuration"; container window { description "window size for frame event configuration"; leaf milliseconds { type uint32 { range "1000..60000"; } description "Use milliseconds as the units for the frame window"; } } // container window container threshold { description "threshold configuration for frame events"; leaf low { type uint32 { range "1..4294967295"; } description "low threshold for frame events"; } leaf high { type uint32 { range "1..4294967295"; } description "high threshold for frame events"; } container thousand { must "(../low or ../high) and not(../million or ../billion)"; presence "Indicates a thousand node is configured."; description "Use thousands of the specified units"; } // container thousand container million { must "(../low or ../high) and not(../thousand or ../billion)"; presence "Indicates a million node is configured."; description "Use millions of the specified units"; } // container million container billion { must "(../low or ../high) and not(../thousand or ../million)"; presence "Indicates a billion node is configured."; description "Use billions of the specified units"; } // container billion } // container threshold } // container frame container frame-period { description "frame-period event configuration"; container window { description "window size for frame-period event configuration"; leaf milliseconds { type uint32 { range "100..60000"; } must "not(../frames/window-size)"; description "Use milliseconds as the units for the frame-period window"; } container frames { description "Use frames as the units for the frame-period window"; leaf window-size { type uint32 { range "1..4294967295"; } must "not(../../milliseconds)"; description "Size of the frame-period window in symbols"; } container thousand { must "../window-size and not(../million or ../billion)"; presence "Indicates a thousand node is configured."; description "Use thousands of the specified units"; } // container thousand container million { must "../window-size and not(../thousand or ../billion)"; presence "Indicates a million node is configured."; description "Use millions of the specified units"; } // container million container billion { must "../window-size and not(../thousand or ../million)"; presence "Indicates a billion node is configured."; description "Use billions of the specified units"; } // container billion } // container frames } // container window container threshold { description "threshold for frame-period events"; container frames { description "Use frames as the units for the frame-period threshold"; leaf low { type uint32 { range "1..4294967295"; } description "low threshold for frame-period events"; } leaf high { type uint32 { range "1..4294967295"; } description "high threshold for frame-period events"; } container thousand { must "(../low or ../high) and not(../million or ../billion)"; presence "Indicates a thousand node is configured."; description "Use thousands of the specified units"; } // container thousand container million { must "(../low or ../high) and not(../thousand or ../billion)"; presence "Indicates a million node is configured."; description "Use millions of the specified units"; } // container million container billion { must "(../low or ../high) and not(../thousand or ../million)"; presence "Indicates a billion node is configured."; description "Use billions of the specified units"; } // container billion } // container frames container ppm { description "Use parts-per-million as the units for the frame-period threshold"; leaf low { type uint32 { range "1..1000000"; } description "low threshold for frame events"; } leaf high { type uint32 { range "1..1000000"; } description "high threshold for frame events"; } } // container ppm } // container threshold } // container frame-period container frame-seconds { description "frame-seconds event configuration"; container window { description "window size for frame-seconds event configuration"; leaf milliseconds { type uint32 { range "10000..900000"; } description "Use milliseconds as the units for the frame-seconds window"; } } // container window container threshold { description "threshold"; leaf low { type uint32 { range "1..900"; } description "low threshold for frame-seconds events"; } leaf high { type uint32 { range "1..900"; } description "high threshold for frame-seconds events"; } } // container threshold } // container frame-seconds container monitoring { presence "Indicates a monitoring node is configured."; description "Monitoring support"; container disable { presence "Indicates a disable node is configured."; description "Disable monitoring"; } // container disable } // container monitoring } // container link-monitor container mode { description "OAM mode"; container passive { must "not(../active)"; presence "Indicates a passive node is configured."; description "Passive mode"; } // container passive container active { must "not(../passive)"; presence "Indicates a active node is configured."; description "Active mode"; } // container active } // container mode leaf hello-interval { type enumeration { enum "100ms" { value 1; description "100 millisecond hello interval"; } enum "1s" { value 0; description "1 second hello interval"; } } description "Hello interval time"; } container remote-loopback { presence "Indicates a remote-loopback node is configured."; description "Remote-loopback support"; } // container remote-loopback container mib-retrieval { presence "Indicates a mib-retrieval node is configured."; description "MIB retrieval support"; } // container mib-retrieval container uni-directional { description "Uni-directional link-fault detection support"; container link-fault { description "Uni-directional link-fault detection support"; container detection { presence "Indicates a detection node is configured."; description "Uni-directional link-fault detection support"; } // container detection } // container link-fault } // container uni-directional container connection { description "OAM connection configuration"; leaf timeout { type uint32 { range "2..30"; } description "OAM connection session timeout period"; } } // container connection container profiles { description "Set the profile to use on the interface"; leaf interface-profile-name { type xr:Cisco-ios-xr-string { length "1..32"; pattern '[-a-zA-Z0-9_]*[-a-zA-Z0-9_]'; } description "Enter a profile name using only letters, numbers, '_' & '-'"; } } // container profiles container require-remote { description "Enter require-remote submode"; container mib-retrieval { presence "Indicates a mib-retrieval node is configured."; description "Requirement of MIB retrieval support"; } // container mib-retrieval container remote-loopback { presence "Indicates a remote-loopback node is configured."; description "Requirement of Remote loopback support"; } // container remote-loopback container link-monitoring { presence "Indicates a link-monitoring node is configured."; description "Requirement of Link monitoring support"; } // container link-monitoring container mode { description "Requirement of a specific OAM mode"; container passive { must "not(../active or ../disabled)"; presence "Indicates a passive node is configured."; description "Require passive mode"; } // container passive container active { must "not(../passive or ../disabled)"; presence "Indicates a active node is configured."; description "Require active mode"; } // container active container disabled { must "not(../passive or ../active)"; presence "Indicates a disabled node is configured."; description "Disable the requirement of a specific mode"; } // container disabled } // container mode } // container require-remote container action { description "Enter action submode"; container critical-event { description "Action to perform when a critical event occurs"; container error-disable-interface { must "not(../log or ../disable)"; presence "Indicates a error-disable-interface node is configured."; description "Error-disable the interface"; } // container error-disable-interface container log { must "not(../error-disable-interface or ../disable)"; presence "Indicates a log node is configured."; description "Log the event"; } // container log container disable { must "not(../error-disable-interface or ../log)"; presence "Indicates a disable node is configured."; description "Perform no action"; } // container disable } // container critical-event container dying-gasp { description "Action to perform when a dying gasp occurs"; container error-disable-interface { must "not(../log or ../disable)"; presence "Indicates a error-disable-interface node is configured."; description "Error-disable the interface"; } // container error-disable-interface container log { must "not(../error-disable-interface or ../disable)"; presence "Indicates a log node is configured."; description "Log the event"; } // container log container disable { must "not(../error-disable-interface or ../log)"; presence "Indicates a disable node is configured."; description "Perform no action"; } // container disable } // container dying-gasp container uni-directional { description "Action to perform when a uni-directional link-fault message is received"; container link-fault { description "Action to perform when a uni-directional link-fault message is received"; container error-disable-interface { must "not(../efd or ../log or ../disable)"; presence "Indicates a error-disable-interface node is configured."; description "Error-disable the interface"; } // container error-disable-interface container efd { must "not(../error-disable-interface or ../log or ../disable)"; presence "Indicates a efd node is configured."; description "Bring down the interface using EFD"; } // container efd container log { must "not(../error-disable-interface or ../efd or ../disable)"; presence "Indicates a log node is configured."; description "Log the event"; } // container log container disable { must "not(../error-disable-interface or ../efd or ../log)"; presence "Indicates a disable node is configured."; description "Perform no action"; } // container disable } // container link-fault } // container uni-directional container capabilities-conflict { description "Action to perform when a capabilities conflict occurs"; container error-disable-interface { must "not(../efd or ../log or ../disable)"; presence "Indicates a error-disable-interface node is configured."; description "Error-disable the interface"; } // container error-disable-interface container efd { must "not(../error-disable-interface or ../log or ../disable)"; presence "Indicates a efd node is configured."; description "Enable EFD to bring down the interface"; } // container efd container log { must "not(../error-disable-interface or ../efd or ../disable)"; presence "Indicates a log node is configured."; description "Log the event"; } // container log container disable { must "not(../error-disable-interface or ../efd or ../log)"; presence "Indicates a disable node is configured."; description "Perform no action"; } // container disable } // container capabilities-conflict container wiring-conflict { description "Action to perform when a wiring conflict occurs"; container efd { must "not(../error-disable-interface or ../log or ../disable)"; presence "Indicates a efd node is configured."; description "Enable EFD to bring down the interface"; } // container efd container error-disable-interface { must "not(../efd or ../log or ../disable)"; presence "Indicates a error-disable-interface node is configured."; description "Error-disable the interface"; } // container error-disable-interface container log { must "not(../efd or ../error-disable-interface or ../disable)"; presence "Indicates a log node is configured."; description "Log the event"; } // container log container disable { must "not(../efd or ../error-disable-interface or ../log)"; presence "Indicates a disable node is configured."; description "Perform no action"; } // container disable } // container wiring-conflict container discovery-timeout { description "Action to perform when discovery timeout occurs"; container error-disable-interface { must "not(../efd or ../log or ../disable)"; presence "Indicates a error-disable-interface node is configured."; description "Error-disable the interface"; } // container error-disable-interface container efd { must "not(../error-disable-interface or ../log or ../disable)"; presence "Indicates a efd node is configured."; description "Enable EFD to bring down the interface"; } // container efd container log { must "not(../error-disable-interface or ../efd or ../disable)"; presence "Indicates a log node is configured."; description "Log the event"; } // container log container disable { must "not(../error-disable-interface or ../efd or ../log)"; presence "Indicates a disable node is configured."; description "Perform no action"; } // container disable } // container discovery-timeout container high-threshold { description "Action to perform when a high-threshold is crossed"; container error-disable-interface { must "not(../log or ../disable)"; presence "Indicates a error-disable-interface node is configured."; description "disable the interface"; } // container error-disable-interface container log { must "not(../error-disable-interface or ../disable)"; presence "Indicates a log node is configured."; description "Log the event"; } // container log container disable { must "not(../error-disable-interface or ../log)"; presence "Indicates a disable node is configured."; description "Perform no action"; } // container disable } // container high-threshold container remote-loopback { description "Action to perform when a remote loopback event occurs"; container log { must "not(../disable)"; presence "Indicates a log node is configured."; description "Log the event"; } // container log container disable { must "not(../log)"; presence "Indicates a disable node is configured."; description "Perform no action"; } // container disable } // container remote-loopback container session-up { description "Action to perform when a session comes up"; container log { must "not(../disable)"; presence "Indicates a log node is configured."; description "Log the event"; } // container log container disable { must "not(../log)"; presence "Indicates a disable node is configured."; description "Perform no action"; } // container disable } // container session-up container session-down { description "Action to perform when a session goes down"; container error-disable-interface { must "not(../efd or ../log or ../disable)"; presence "Indicates a error-disable-interface node is configured."; description "Error-disable the interface"; } // container error-disable-interface container efd { must "not(../error-disable-interface or ../log or ../disable)"; presence "Indicates a efd node is configured."; description "Enable EFD to bring down the interface"; } // container efd container log { must "not(../error-disable-interface or ../efd or ../disable)"; presence "Indicates a log node is configured."; description "Log the event"; } // container log container disable { must "not(../error-disable-interface or ../efd or ../log)"; presence "Indicates a disable node is configured."; description "Perform no action"; } // container disable } // container session-down } // container action } // container oam } // container ethernet } // list interface-preconfigure list controller { key "controller-name"; description "Controller configuration subcommands"; leaf controller-name { type xr:Controller-name; description "Controller name"; } 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"; } container frequency { tailf:dependency "../a1:controller-name"; when "../a1:controller-name[starts-with(text(),'SONET')]"; description "Frequency Synchronization configuration"; container synchronization { presence "Indicates a synchronization node is configured."; description "Frequency Synchronization configuration"; container ssm { description "SSM configuration commands"; container disable { presence "Indicates a disable node is configured."; description "Disable sending of SSMs"; } // container disable } // container ssm leaf priority { type uint32 { range "1..254"; } description "Source priority"; } leaf time-of-day-priority { type uint32 { range "1..254"; } description "Source time-of-day priority"; } container quality { description "Quality level configuration"; container transmit { description "Set the quality level to be transmitted"; container lowest { description "Specify the lowest acceptable QL value"; container itu-t { description "ITU-T QL options"; container option { description "ITU-T QL options"; leaf one { type enumeration { enum "prc" { value 22; description "ITU-T Option 1: Primary reference clock"; } enum "prtc" { value 21; description "ITU-T Option 1: Primary reference timing clock"; } enum "e-prtc" { value 20; description "ITU-T Option 1: Enhanced primary reference timing clock"; } enum "ssu-a" { value 23; description "ITU-T Option 1: Type I or V subordinate clock"; } enum "ssu-b" { value 24; description "ITU-T Option 1: Type IV subordinate clock"; } enum "sec" { value 27; description "ITU-T Option 1: SONET equipment clock"; } enum "e-eec" { value 25; description "ITU-T Option 1: Enhanced ethernet equipment clock"; } enum "eec1" { value 26; description "ITU-T Option 1: Ethernet equipment clock"; } enum "dnu" { value 1; description "This signal should not be used for synchronization"; } } must "not(../two/generation/one or ../two/generation/two or ../../../../highest/itu-t/option/two/generation/one or ../../../../highest/itu-t/option/two/generation/two or ../../../../exact/itu-t/option/one or ../../../../exact/itu-t/option/two/generation/one or ../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 1"; } container two { description "ITU-T QL option 2"; container generation { description "ITU-T QL option 2 generation"; leaf one { type enumeration { enum "prs" { value 42; description "ITU-T Option 2, Generation 1: Primary reference source"; } enum "prtc" { value 41; description "ITU-T Option 2, Generation 1: Primary reference timing clock"; } enum "e-prtc" { value 40; description "ITU-T Option 2, Generation 1: Enhanced primary reference timing clock"; } enum "stu" { value 43; description "ITU-T Option 2, Generation 1: Synchronized - traceability unknown"; } enum "st2" { value 44; description "ITU-T Option 2, Generation 1: Stratum 2"; } enum "st3" { value 45; description "ITU-T Option 2, Generation 1: Stratum 3"; } enum "smc" { value 48; description "ITU-T Option 2, Generation 1: SONET clock self timed"; } enum "eec2" { value 47; description "ITU-T Option 2, Generation 1: Ethernet equipment clock"; } enum "e-eec" { value 46; description "ITU-T Option 2, Generation 1: Ethernet ethernet equipment clock"; } enum "st4" { value 49; description "ITU-T Option 2, Generation 1: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../two or ../../../../../../highest/itu-t/option/one or ../../../../../../highest/itu-t/option/two/generation/two or ../../../../../../exact/itu-t/option/one or ../../../../../../exact/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 1"; } leaf two { type enumeration { enum "prs" { value 62; description "ITU-T Option 2, Generation 2: Primary reference source"; } enum "prtc" { value 61; description "ITU-T Option 2, Generation 2: Primary reference timing clock"; } enum "e-prtc" { value 60; description "ITU-T Option 2, Generation 2: Enhanced primary reference timing clock"; } enum "stu" { value 63; description "ITU-T Option 2, Generation 2: Synchronized - traceability unknown"; } enum "st2" { value 64; description "ITU-T Option 2, Generation 2: Stratum 2"; } enum "tnc" { value 65; description "ITU-T Option 2, Generation 2: Transit node clock"; } enum "st3e" { value 66; description "ITU-T Option 2, Generation 2: Stratum 3E"; } enum "st3" { value 67; description "ITU-T Option 2, Generation 2: Stratum 3"; } enum "smc" { value 70; description "ITU-T Option 2, Generation 2: SONET clock self timed"; } enum "eec2" { value 69; description "ITU-T Option 2, Generation 2: Ethernet equipment clock"; } enum "e-eec" { value 68; description "ITU-T Option 2, Generation 2: Ethernet ethernet equipment clock"; } enum "st4" { value 71; description "ITU-T Option 2, Generation 2: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../one or ../../../../../../highest/itu-t/option/one or ../../../../../../highest/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/one or ../../../../../../exact/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 2"; } } // container generation } // container two } // container option } // container itu-t } // container lowest container highest { description "Specify the highest acceptable QL value"; container itu-t { description "ITU-T QL options"; container option { description "ITU-T QL options"; leaf one { type enumeration { enum "prc" { value 22; description "ITU-T Option 1: Primary reference clock"; } enum "prtc" { value 21; description "ITU-T Option 1: Primary reference timing clock"; } enum "e-prtc" { value 20; description "ITU-T Option 1: Enhanced primary reference timing clock"; } enum "ssu-a" { value 23; description "ITU-T Option 1: Type I or V subordinate clock"; } enum "ssu-b" { value 24; description "ITU-T Option 1: Type IV subordinate clock"; } enum "sec" { value 27; description "ITU-T Option 1: SONET equipment clock"; } enum "e-eec" { value 25; description "ITU-T Option 1: Enhanced ethernet equipment clock"; } enum "eec1" { value 26; description "ITU-T Option 1: Ethernet equipment clock"; } enum "dnu" { value 1; description "This signal should not be used for synchronization"; } } must "not(../two/generation/one or ../two/generation/two or ../../../../lowest/itu-t/option/one or ../../../../lowest/itu-t/option/two/generation/one or ../../../../lowest/itu-t/option/two/generation/two or ../../../../exact/itu-t/option/one or ../../../../exact/itu-t/option/two/generation/one or ../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 1"; } container two { description "ITU-T QL option 2"; container generation { description "ITU-T QL option 2 generation"; leaf one { type enumeration { enum "prs" { value 42; description "ITU-T Option 2, Generation 1: Primary reference source"; } enum "prtc" { value 41; description "ITU-T Option 2, Generation 1: Primary reference timing clock"; } enum "e-prtc" { value 40; description "ITU-T Option 2, Generation 1: Enhanced primary reference timing clock"; } enum "stu" { value 43; description "ITU-T Option 2, Generation 1: Synchronized - traceability unknown"; } enum "st2" { value 44; description "ITU-T Option 2, Generation 1: Stratum 2"; } enum "st3" { value 45; description "ITU-T Option 2, Generation 1: Stratum 3"; } enum "smc" { value 48; description "ITU-T Option 2, Generation 1: SONET clock self timed"; } enum "eec2" { value 47; description "ITU-T Option 2, Generation 1: Ethernet equipment clock"; } enum "e-eec" { value 46; description "ITU-T Option 2, Generation 1: Ethernet ethernet equipment clock"; } enum "st4" { value 49; description "ITU-T Option 2, Generation 1: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../two or ../../../../../../lowest/itu-t/option/one or ../../../../../../lowest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/two/generation/two or ../../../../../../exact/itu-t/option/one or ../../../../../../exact/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 1"; } leaf two { type enumeration { enum "prs" { value 62; description "ITU-T Option 2, Generation 2: Primary reference source"; } enum "prtc" { value 61; description "ITU-T Option 2, Generation 2: Primary reference timing clock"; } enum "e-prtc" { value 60; description "ITU-T Option 2, Generation 2: Enhanced primary reference timing clock"; } enum "stu" { value 63; description "ITU-T Option 2, Generation 2: Synchronized - traceability unknown"; } enum "st2" { value 64; description "ITU-T Option 2, Generation 2: Stratum 2"; } enum "tnc" { value 65; description "ITU-T Option 2, Generation 2: Transit node clock"; } enum "st3e" { value 66; description "ITU-T Option 2, Generation 2: Stratum 3E"; } enum "st3" { value 67; description "ITU-T Option 2, Generation 2: Stratum 3"; } enum "smc" { value 70; description "ITU-T Option 2, Generation 2: SONET clock self timed"; } enum "eec2" { value 69; description "ITU-T Option 2, Generation 2: Ethernet equipment clock"; } enum "e-eec" { value 68; description "ITU-T Option 2, Generation 2: Ethernet ethernet equipment clock"; } enum "st4" { value 71; description "ITU-T Option 2, Generation 2: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../one or ../../../../../../lowest/itu-t/option/one or ../../../../../../lowest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/two/generation/two or ../../../../../../exact/itu-t/option/one or ../../../../../../exact/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 2"; } } // container generation } // container two } // container option } // container itu-t } // container highest container exact { description "Specify the exact QL value to use"; container itu-t { description "ITU-T QL options"; container option { description "ITU-T QL options"; leaf one { type enumeration { enum "prc" { value 22; description "ITU-T Option 1: Primary reference clock"; } enum "prtc" { value 21; description "ITU-T Option 1: Primary reference timing clock"; } enum "e-prtc" { value 20; description "ITU-T Option 1: Enhanced primary reference timing clock"; } enum "ssu-a" { value 23; description "ITU-T Option 1: Type I or V subordinate clock"; } enum "ssu-b" { value 24; description "ITU-T Option 1: Type IV subordinate clock"; } enum "sec" { value 27; description "ITU-T Option 1: SONET equipment clock"; } enum "e-eec" { value 25; description "ITU-T Option 1: Enhanced ethernet equipment clock"; } enum "eec1" { value 26; description "ITU-T Option 1: Ethernet equipment clock"; } enum "dnu" { value 1; description "This signal should not be used for synchronization"; } } must "not(../two/generation/one or ../two/generation/two or ../../../../highest/itu-t/option/two/generation/one or ../../../../highest/itu-t/option/two/generation/two or ../../../../lowest/itu-t/option/one or ../../../../lowest/itu-t/option/two/generation/one or ../../../../lowest/itu-t/option/two/generation/two)"; description "ITU-T QL option 1"; } container two { description "ITU-T QL option 2"; container generation { description "ITU-T QL option 2 generation"; leaf one { type enumeration { enum "prs" { value 42; description "ITU-T Option 2, Generation 1: Primary reference source"; } enum "prtc" { value 41; description "ITU-T Option 2, Generation 1: Primary reference timing clock"; } enum "e-prtc" { value 40; description "ITU-T Option 2, Generation 1: Enhanced primary reference timing clock"; } enum "stu" { value 43; description "ITU-T Option 2, Generation 1: Synchronized - traceability unknown"; } enum "st2" { value 44; description "ITU-T Option 2, Generation 1: Stratum 2"; } enum "st3" { value 45; description "ITU-T Option 2, Generation 1: Stratum 3"; } enum "smc" { value 48; description "ITU-T Option 2, Generation 1: SONET clock self timed"; } enum "eec2" { value 47; description "ITU-T Option 2, Generation 1: Ethernet equipment clock"; } enum "e-eec" { value 46; description "ITU-T Option 2, Generation 1: Ethernet ethernet equipment clock"; } enum "st4" { value 49; description "ITU-T Option 2, Generation 1: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../two or ../../../../../../highest/itu-t/option/one or ../../../../../../highest/itu-t/option/two/generation/two or ../../../../../../lowest/itu-t/option/one or ../../../../../../lowest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 1"; } leaf two { type enumeration { enum "prs" { value 62; description "ITU-T Option 2, Generation 2: Primary reference source"; } enum "prtc" { value 61; description "ITU-T Option 2, Generation 2: Primary reference timing clock"; } enum "e-prtc" { value 60; description "ITU-T Option 2, Generation 2: Enhanced primary reference timing clock"; } enum "stu" { value 63; description "ITU-T Option 2, Generation 2: Synchronized - traceability unknown"; } enum "st2" { value 64; description "ITU-T Option 2, Generation 2: Stratum 2"; } enum "tnc" { value 65; description "ITU-T Option 2, Generation 2: Transit node clock"; } enum "st3e" { value 66; description "ITU-T Option 2, Generation 2: Stratum 3E"; } enum "st3" { value 67; description "ITU-T Option 2, Generation 2: Stratum 3"; } enum "smc" { value 70; description "ITU-T Option 2, Generation 2: SONET clock self timed"; } enum "eec2" { value 69; description "ITU-T Option 2, Generation 2: Ethernet equipment clock"; } enum "e-eec" { value 68; description "ITU-T Option 2, Generation 2: Ethernet ethernet equipment clock"; } enum "st4" { value 71; description "ITU-T Option 2, Generation 2: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../one or ../../../../../../highest/itu-t/option/one or ../../../../../../highest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/one or ../../../../../../lowest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 2"; } } // container generation } // container two } // container option } // container itu-t } // container exact } // container transmit container receive { description "Adjust the received quality level"; container lowest { description "Specify the lowest acceptable QL value"; container itu-t { description "ITU-T QL options"; container option { description "ITU-T QL options"; leaf one { type enumeration { enum "prc" { value 22; description "ITU-T Option 1: Primary reference clock"; } enum "prtc" { value 21; description "ITU-T Option 1: Primary reference timing clock"; } enum "e-prtc" { value 20; description "ITU-T Option 1: Enhanced primary reference timing clock"; } enum "ssu-a" { value 23; description "ITU-T Option 1: Type I or V subordinate clock"; } enum "ssu-b" { value 24; description "ITU-T Option 1: Type IV subordinate clock"; } enum "sec" { value 27; description "ITU-T Option 1: SONET equipment clock"; } enum "e-eec" { value 25; description "ITU-T Option 1: Enhanced ethernet equipment clock"; } enum "eec1" { value 26; description "ITU-T Option 1: Ethernet equipment clock"; } enum "dnu" { value 1; description "This signal should not be used for synchronization"; } } must "not(../two/generation/one or ../two/generation/two or ../../../../highest/itu-t/option/two/generation/one or ../../../../highest/itu-t/option/two/generation/two or ../../../../exact/itu-t/option/one or ../../../../exact/itu-t/option/two/generation/one or ../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 1"; } container two { description "ITU-T QL option 2"; container generation { description "ITU-T QL option 2 generation"; leaf one { type enumeration { enum "prs" { value 42; description "ITU-T Option 2, Generation 1: Primary reference source"; } enum "prtc" { value 41; description "ITU-T Option 2, Generation 1: Primary reference timing clock"; } enum "e-prtc" { value 40; description "ITU-T Option 2, Generation 1: Enhanced primary reference timing clock"; } enum "stu" { value 43; description "ITU-T Option 2, Generation 1: Synchronized - traceability unknown"; } enum "st2" { value 44; description "ITU-T Option 2, Generation 1: Stratum 2"; } enum "st3" { value 45; description "ITU-T Option 2, Generation 1: Stratum 3"; } enum "smc" { value 48; description "ITU-T Option 2, Generation 1: SONET clock self timed"; } enum "eec2" { value 47; description "ITU-T Option 2, Generation 1: Ethernet equipment clock"; } enum "e-eec" { value 46; description "ITU-T Option 2, Generation 1: Ethernet ethernet equipment clock"; } enum "st4" { value 49; description "ITU-T Option 2, Generation 1: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../two or ../../../../../../highest/itu-t/option/one or ../../../../../../highest/itu-t/option/two/generation/two or ../../../../../../exact/itu-t/option/one or ../../../../../../exact/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 1"; } leaf two { type enumeration { enum "prs" { value 62; description "ITU-T Option 2, Generation 2: Primary reference source"; } enum "prtc" { value 61; description "ITU-T Option 2, Generation 2: Primary reference timing clock"; } enum "e-prtc" { value 60; description "ITU-T Option 2, Generation 2: Enhanced primary reference timing clock"; } enum "stu" { value 63; description "ITU-T Option 2, Generation 2: Synchronized - traceability unknown"; } enum "st2" { value 64; description "ITU-T Option 2, Generation 2: Stratum 2"; } enum "tnc" { value 65; description "ITU-T Option 2, Generation 2: Transit node clock"; } enum "st3e" { value 66; description "ITU-T Option 2, Generation 2: Stratum 3E"; } enum "st3" { value 67; description "ITU-T Option 2, Generation 2: Stratum 3"; } enum "smc" { value 70; description "ITU-T Option 2, Generation 2: SONET clock self timed"; } enum "eec2" { value 69; description "ITU-T Option 2, Generation 2: Ethernet equipment clock"; } enum "e-eec" { value 68; description "ITU-T Option 2, Generation 2: Ethernet ethernet equipment clock"; } enum "st4" { value 71; description "ITU-T Option 2, Generation 2: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../one or ../../../../../../highest/itu-t/option/one or ../../../../../../highest/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/one or ../../../../../../exact/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 2"; } } // container generation } // container two } // container option } // container itu-t } // container lowest container highest { description "Specify the highest acceptable QL value"; container itu-t { description "ITU-T QL options"; container option { description "ITU-T QL options"; leaf one { type enumeration { enum "prc" { value 22; description "ITU-T Option 1: Primary reference clock"; } enum "prtc" { value 21; description "ITU-T Option 1: Primary reference timing clock"; } enum "e-prtc" { value 20; description "ITU-T Option 1: Enhanced primary reference timing clock"; } enum "ssu-a" { value 23; description "ITU-T Option 1: Type I or V subordinate clock"; } enum "ssu-b" { value 24; description "ITU-T Option 1: Type IV subordinate clock"; } enum "sec" { value 27; description "ITU-T Option 1: SONET equipment clock"; } enum "e-eec" { value 25; description "ITU-T Option 1: Enhanced ethernet equipment clock"; } enum "eec1" { value 26; description "ITU-T Option 1: Ethernet equipment clock"; } enum "dnu" { value 1; description "This signal should not be used for synchronization"; } } must "not(../two/generation/one or ../two/generation/two or ../../../../lowest/itu-t/option/one or ../../../../lowest/itu-t/option/two/generation/one or ../../../../lowest/itu-t/option/two/generation/two or ../../../../exact/itu-t/option/one or ../../../../exact/itu-t/option/two/generation/one or ../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 1"; } container two { description "ITU-T QL option 2"; container generation { description "ITU-T QL option 2 generation"; leaf one { type enumeration { enum "prs" { value 42; description "ITU-T Option 2, Generation 1: Primary reference source"; } enum "prtc" { value 41; description "ITU-T Option 2, Generation 1: Primary reference timing clock"; } enum "e-prtc" { value 40; description "ITU-T Option 2, Generation 1: Enhanced primary reference timing clock"; } enum "stu" { value 43; description "ITU-T Option 2, Generation 1: Synchronized - traceability unknown"; } enum "st2" { value 44; description "ITU-T Option 2, Generation 1: Stratum 2"; } enum "st3" { value 45; description "ITU-T Option 2, Generation 1: Stratum 3"; } enum "smc" { value 48; description "ITU-T Option 2, Generation 1: SONET clock self timed"; } enum "eec2" { value 47; description "ITU-T Option 2, Generation 1: Ethernet equipment clock"; } enum "e-eec" { value 46; description "ITU-T Option 2, Generation 1: Ethernet ethernet equipment clock"; } enum "st4" { value 49; description "ITU-T Option 2, Generation 1: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../two or ../../../../../../lowest/itu-t/option/one or ../../../../../../lowest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/two/generation/two or ../../../../../../exact/itu-t/option/one or ../../../../../../exact/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 1"; } leaf two { type enumeration { enum "prs" { value 62; description "ITU-T Option 2, Generation 2: Primary reference source"; } enum "prtc" { value 61; description "ITU-T Option 2, Generation 2: Primary reference timing clock"; } enum "e-prtc" { value 60; description "ITU-T Option 2, Generation 2: Enhanced primary reference timing clock"; } enum "stu" { value 63; description "ITU-T Option 2, Generation 2: Synchronized - traceability unknown"; } enum "st2" { value 64; description "ITU-T Option 2, Generation 2: Stratum 2"; } enum "tnc" { value 65; description "ITU-T Option 2, Generation 2: Transit node clock"; } enum "st3e" { value 66; description "ITU-T Option 2, Generation 2: Stratum 3E"; } enum "st3" { value 67; description "ITU-T Option 2, Generation 2: Stratum 3"; } enum "smc" { value 70; description "ITU-T Option 2, Generation 2: SONET clock self timed"; } enum "eec2" { value 69; description "ITU-T Option 2, Generation 2: Ethernet equipment clock"; } enum "e-eec" { value 68; description "ITU-T Option 2, Generation 2: Ethernet ethernet equipment clock"; } enum "st4" { value 71; description "ITU-T Option 2, Generation 2: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../one or ../../../../../../lowest/itu-t/option/one or ../../../../../../lowest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/two/generation/two or ../../../../../../exact/itu-t/option/one or ../../../../../../exact/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 2"; } } // container generation } // container two } // container option } // container itu-t } // container highest container exact { description "Specify the exact QL value to use"; container itu-t { description "ITU-T QL options"; container option { description "ITU-T QL options"; leaf one { type enumeration { enum "prc" { value 22; description "ITU-T Option 1: Primary reference clock"; } enum "prtc" { value 21; description "ITU-T Option 1: Primary reference timing clock"; } enum "e-prtc" { value 20; description "ITU-T Option 1: Enhanced primary reference timing clock"; } enum "ssu-a" { value 23; description "ITU-T Option 1: Type I or V subordinate clock"; } enum "ssu-b" { value 24; description "ITU-T Option 1: Type IV subordinate clock"; } enum "sec" { value 27; description "ITU-T Option 1: SONET equipment clock"; } enum "e-eec" { value 25; description "ITU-T Option 1: Enhanced ethernet equipment clock"; } enum "eec1" { value 26; description "ITU-T Option 1: Ethernet equipment clock"; } enum "dnu" { value 1; description "This signal should not be used for synchronization"; } } must "not(../two/generation/one or ../two/generation/two or ../../../../highest/itu-t/option/two/generation/one or ../../../../highest/itu-t/option/two/generation/two or ../../../../lowest/itu-t/option/one or ../../../../lowest/itu-t/option/two/generation/one or ../../../../lowest/itu-t/option/two/generation/two)"; description "ITU-T QL option 1"; } container two { description "ITU-T QL option 2"; container generation { description "ITU-T QL option 2 generation"; leaf one { type enumeration { enum "prs" { value 42; description "ITU-T Option 2, Generation 1: Primary reference source"; } enum "prtc" { value 41; description "ITU-T Option 2, Generation 1: Primary reference timing clock"; } enum "e-prtc" { value 40; description "ITU-T Option 2, Generation 1: Enhanced primary reference timing clock"; } enum "stu" { value 43; description "ITU-T Option 2, Generation 1: Synchronized - traceability unknown"; } enum "st2" { value 44; description "ITU-T Option 2, Generation 1: Stratum 2"; } enum "st3" { value 45; description "ITU-T Option 2, Generation 1: Stratum 3"; } enum "smc" { value 48; description "ITU-T Option 2, Generation 1: SONET clock self timed"; } enum "eec2" { value 47; description "ITU-T Option 2, Generation 1: Ethernet equipment clock"; } enum "e-eec" { value 46; description "ITU-T Option 2, Generation 1: Ethernet ethernet equipment clock"; } enum "st4" { value 49; description "ITU-T Option 2, Generation 1: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../two or ../../../../../../highest/itu-t/option/one or ../../../../../../highest/itu-t/option/two/generation/two or ../../../../../../lowest/itu-t/option/one or ../../../../../../lowest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 1"; } leaf two { type enumeration { enum "prs" { value 62; description "ITU-T Option 2, Generation 2: Primary reference source"; } enum "prtc" { value 61; description "ITU-T Option 2, Generation 2: Primary reference timing clock"; } enum "e-prtc" { value 60; description "ITU-T Option 2, Generation 2: Enhanced primary reference timing clock"; } enum "stu" { value 63; description "ITU-T Option 2, Generation 2: Synchronized - traceability unknown"; } enum "st2" { value 64; description "ITU-T Option 2, Generation 2: Stratum 2"; } enum "tnc" { value 65; description "ITU-T Option 2, Generation 2: Transit node clock"; } enum "st3e" { value 66; description "ITU-T Option 2, Generation 2: Stratum 3E"; } enum "st3" { value 67; description "ITU-T Option 2, Generation 2: Stratum 3"; } enum "smc" { value 70; description "ITU-T Option 2, Generation 2: SONET clock self timed"; } enum "eec2" { value 69; description "ITU-T Option 2, Generation 2: Ethernet equipment clock"; } enum "e-eec" { value 68; description "ITU-T Option 2, Generation 2: Ethernet ethernet equipment clock"; } enum "st4" { value 71; description "ITU-T Option 2, Generation 2: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../one or ../../../../../../highest/itu-t/option/one or ../../../../../../highest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/one or ../../../../../../lowest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 2"; } } // container generation } // container two } // container option } // container itu-t } // container exact } // container receive } // container quality leaf wait-to-restore { type uint32 { range "0..12"; } description "Set the wait-to-restore time"; } container selection { description "Selection configuration commands"; container input { presence "Indicates a input node is configured."; description "Enable this source for selection"; } // container input } // container selection } // container synchronization } // container frequency } // list controller list controller-preconfigure { key "controller-name"; description "Specify a preconfig controller"; leaf controller-name { type xr:Controller-name; description "Controller name"; } 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"; } container frequency { tailf:dependency "../a1:controller-name"; when "../a1:controller-name[starts-with(text(),'SONET')]"; description "Frequency Synchronization configuration"; container synchronization { presence "Indicates a synchronization node is configured."; description "Frequency Synchronization configuration"; container ssm { description "SSM configuration commands"; container disable { presence "Indicates a disable node is configured."; description "Disable sending of SSMs"; } // container disable } // container ssm leaf priority { type uint32 { range "1..254"; } description "Source priority"; } leaf time-of-day-priority { type uint32 { range "1..254"; } description "Source time-of-day priority"; } container quality { description "Quality level configuration"; container transmit { description "Set the quality level to be transmitted"; container lowest { description "Specify the lowest acceptable QL value"; container itu-t { description "ITU-T QL options"; container option { description "ITU-T QL options"; leaf one { type enumeration { enum "prc" { value 22; description "ITU-T Option 1: Primary reference clock"; } enum "prtc" { value 21; description "ITU-T Option 1: Primary reference timing clock"; } enum "e-prtc" { value 20; description "ITU-T Option 1: Enhanced primary reference timing clock"; } enum "ssu-a" { value 23; description "ITU-T Option 1: Type I or V subordinate clock"; } enum "ssu-b" { value 24; description "ITU-T Option 1: Type IV subordinate clock"; } enum "sec" { value 27; description "ITU-T Option 1: SONET equipment clock"; } enum "e-eec" { value 25; description "ITU-T Option 1: Enhanced ethernet equipment clock"; } enum "eec1" { value 26; description "ITU-T Option 1: Ethernet equipment clock"; } enum "dnu" { value 1; description "This signal should not be used for synchronization"; } } must "not(../two/generation/one or ../two/generation/two or ../../../../highest/itu-t/option/two/generation/one or ../../../../highest/itu-t/option/two/generation/two or ../../../../exact/itu-t/option/one or ../../../../exact/itu-t/option/two/generation/one or ../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 1"; } container two { description "ITU-T QL option 2"; container generation { description "ITU-T QL option 2 generation"; leaf one { type enumeration { enum "prs" { value 42; description "ITU-T Option 2, Generation 1: Primary reference source"; } enum "prtc" { value 41; description "ITU-T Option 2, Generation 1: Primary reference timing clock"; } enum "e-prtc" { value 40; description "ITU-T Option 2, Generation 1: Enhanced primary reference timing clock"; } enum "stu" { value 43; description "ITU-T Option 2, Generation 1: Synchronized - traceability unknown"; } enum "st2" { value 44; description "ITU-T Option 2, Generation 1: Stratum 2"; } enum "st3" { value 45; description "ITU-T Option 2, Generation 1: Stratum 3"; } enum "smc" { value 48; description "ITU-T Option 2, Generation 1: SONET clock self timed"; } enum "eec2" { value 47; description "ITU-T Option 2, Generation 1: Ethernet equipment clock"; } enum "e-eec" { value 46; description "ITU-T Option 2, Generation 1: Ethernet ethernet equipment clock"; } enum "st4" { value 49; description "ITU-T Option 2, Generation 1: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../two or ../../../../../../highest/itu-t/option/one or ../../../../../../highest/itu-t/option/two/generation/two or ../../../../../../exact/itu-t/option/one or ../../../../../../exact/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 1"; } leaf two { type enumeration { enum "prs" { value 62; description "ITU-T Option 2, Generation 2: Primary reference source"; } enum "prtc" { value 61; description "ITU-T Option 2, Generation 2: Primary reference timing clock"; } enum "e-prtc" { value 60; description "ITU-T Option 2, Generation 2: Enhanced primary reference timing clock"; } enum "stu" { value 63; description "ITU-T Option 2, Generation 2: Synchronized - traceability unknown"; } enum "st2" { value 64; description "ITU-T Option 2, Generation 2: Stratum 2"; } enum "tnc" { value 65; description "ITU-T Option 2, Generation 2: Transit node clock"; } enum "st3e" { value 66; description "ITU-T Option 2, Generation 2: Stratum 3E"; } enum "st3" { value 67; description "ITU-T Option 2, Generation 2: Stratum 3"; } enum "smc" { value 70; description "ITU-T Option 2, Generation 2: SONET clock self timed"; } enum "eec2" { value 69; description "ITU-T Option 2, Generation 2: Ethernet equipment clock"; } enum "e-eec" { value 68; description "ITU-T Option 2, Generation 2: Ethernet ethernet equipment clock"; } enum "st4" { value 71; description "ITU-T Option 2, Generation 2: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../one or ../../../../../../highest/itu-t/option/one or ../../../../../../highest/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/one or ../../../../../../exact/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 2"; } } // container generation } // container two } // container option } // container itu-t } // container lowest container highest { description "Specify the highest acceptable QL value"; container itu-t { description "ITU-T QL options"; container option { description "ITU-T QL options"; leaf one { type enumeration { enum "prc" { value 22; description "ITU-T Option 1: Primary reference clock"; } enum "prtc" { value 21; description "ITU-T Option 1: Primary reference timing clock"; } enum "e-prtc" { value 20; description "ITU-T Option 1: Enhanced primary reference timing clock"; } enum "ssu-a" { value 23; description "ITU-T Option 1: Type I or V subordinate clock"; } enum "ssu-b" { value 24; description "ITU-T Option 1: Type IV subordinate clock"; } enum "sec" { value 27; description "ITU-T Option 1: SONET equipment clock"; } enum "e-eec" { value 25; description "ITU-T Option 1: Enhanced ethernet equipment clock"; } enum "eec1" { value 26; description "ITU-T Option 1: Ethernet equipment clock"; } enum "dnu" { value 1; description "This signal should not be used for synchronization"; } } must "not(../two/generation/one or ../two/generation/two or ../../../../lowest/itu-t/option/one or ../../../../lowest/itu-t/option/two/generation/one or ../../../../lowest/itu-t/option/two/generation/two or ../../../../exact/itu-t/option/one or ../../../../exact/itu-t/option/two/generation/one or ../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 1"; } container two { description "ITU-T QL option 2"; container generation { description "ITU-T QL option 2 generation"; leaf one { type enumeration { enum "prs" { value 42; description "ITU-T Option 2, Generation 1: Primary reference source"; } enum "prtc" { value 41; description "ITU-T Option 2, Generation 1: Primary reference timing clock"; } enum "e-prtc" { value 40; description "ITU-T Option 2, Generation 1: Enhanced primary reference timing clock"; } enum "stu" { value 43; description "ITU-T Option 2, Generation 1: Synchronized - traceability unknown"; } enum "st2" { value 44; description "ITU-T Option 2, Generation 1: Stratum 2"; } enum "st3" { value 45; description "ITU-T Option 2, Generation 1: Stratum 3"; } enum "smc" { value 48; description "ITU-T Option 2, Generation 1: SONET clock self timed"; } enum "eec2" { value 47; description "ITU-T Option 2, Generation 1: Ethernet equipment clock"; } enum "e-eec" { value 46; description "ITU-T Option 2, Generation 1: Ethernet ethernet equipment clock"; } enum "st4" { value 49; description "ITU-T Option 2, Generation 1: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../two or ../../../../../../lowest/itu-t/option/one or ../../../../../../lowest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/two/generation/two or ../../../../../../exact/itu-t/option/one or ../../../../../../exact/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 1"; } leaf two { type enumeration { enum "prs" { value 62; description "ITU-T Option 2, Generation 2: Primary reference source"; } enum "prtc" { value 61; description "ITU-T Option 2, Generation 2: Primary reference timing clock"; } enum "e-prtc" { value 60; description "ITU-T Option 2, Generation 2: Enhanced primary reference timing clock"; } enum "stu" { value 63; description "ITU-T Option 2, Generation 2: Synchronized - traceability unknown"; } enum "st2" { value 64; description "ITU-T Option 2, Generation 2: Stratum 2"; } enum "tnc" { value 65; description "ITU-T Option 2, Generation 2: Transit node clock"; } enum "st3e" { value 66; description "ITU-T Option 2, Generation 2: Stratum 3E"; } enum "st3" { value 67; description "ITU-T Option 2, Generation 2: Stratum 3"; } enum "smc" { value 70; description "ITU-T Option 2, Generation 2: SONET clock self timed"; } enum "eec2" { value 69; description "ITU-T Option 2, Generation 2: Ethernet equipment clock"; } enum "e-eec" { value 68; description "ITU-T Option 2, Generation 2: Ethernet ethernet equipment clock"; } enum "st4" { value 71; description "ITU-T Option 2, Generation 2: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../one or ../../../../../../lowest/itu-t/option/one or ../../../../../../lowest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/two/generation/two or ../../../../../../exact/itu-t/option/one or ../../../../../../exact/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 2"; } } // container generation } // container two } // container option } // container itu-t } // container highest container exact { description "Specify the exact QL value to use"; container itu-t { description "ITU-T QL options"; container option { description "ITU-T QL options"; leaf one { type enumeration { enum "prc" { value 22; description "ITU-T Option 1: Primary reference clock"; } enum "prtc" { value 21; description "ITU-T Option 1: Primary reference timing clock"; } enum "e-prtc" { value 20; description "ITU-T Option 1: Enhanced primary reference timing clock"; } enum "ssu-a" { value 23; description "ITU-T Option 1: Type I or V subordinate clock"; } enum "ssu-b" { value 24; description "ITU-T Option 1: Type IV subordinate clock"; } enum "sec" { value 27; description "ITU-T Option 1: SONET equipment clock"; } enum "e-eec" { value 25; description "ITU-T Option 1: Enhanced ethernet equipment clock"; } enum "eec1" { value 26; description "ITU-T Option 1: Ethernet equipment clock"; } enum "dnu" { value 1; description "This signal should not be used for synchronization"; } } must "not(../two/generation/one or ../two/generation/two or ../../../../highest/itu-t/option/two/generation/one or ../../../../highest/itu-t/option/two/generation/two or ../../../../lowest/itu-t/option/one or ../../../../lowest/itu-t/option/two/generation/one or ../../../../lowest/itu-t/option/two/generation/two)"; description "ITU-T QL option 1"; } container two { description "ITU-T QL option 2"; container generation { description "ITU-T QL option 2 generation"; leaf one { type enumeration { enum "prs" { value 42; description "ITU-T Option 2, Generation 1: Primary reference source"; } enum "prtc" { value 41; description "ITU-T Option 2, Generation 1: Primary reference timing clock"; } enum "e-prtc" { value 40; description "ITU-T Option 2, Generation 1: Enhanced primary reference timing clock"; } enum "stu" { value 43; description "ITU-T Option 2, Generation 1: Synchronized - traceability unknown"; } enum "st2" { value 44; description "ITU-T Option 2, Generation 1: Stratum 2"; } enum "st3" { value 45; description "ITU-T Option 2, Generation 1: Stratum 3"; } enum "smc" { value 48; description "ITU-T Option 2, Generation 1: SONET clock self timed"; } enum "eec2" { value 47; description "ITU-T Option 2, Generation 1: Ethernet equipment clock"; } enum "e-eec" { value 46; description "ITU-T Option 2, Generation 1: Ethernet ethernet equipment clock"; } enum "st4" { value 49; description "ITU-T Option 2, Generation 1: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../two or ../../../../../../highest/itu-t/option/one or ../../../../../../highest/itu-t/option/two/generation/two or ../../../../../../lowest/itu-t/option/one or ../../../../../../lowest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 1"; } leaf two { type enumeration { enum "prs" { value 62; description "ITU-T Option 2, Generation 2: Primary reference source"; } enum "prtc" { value 61; description "ITU-T Option 2, Generation 2: Primary reference timing clock"; } enum "e-prtc" { value 60; description "ITU-T Option 2, Generation 2: Enhanced primary reference timing clock"; } enum "stu" { value 63; description "ITU-T Option 2, Generation 2: Synchronized - traceability unknown"; } enum "st2" { value 64; description "ITU-T Option 2, Generation 2: Stratum 2"; } enum "tnc" { value 65; description "ITU-T Option 2, Generation 2: Transit node clock"; } enum "st3e" { value 66; description "ITU-T Option 2, Generation 2: Stratum 3E"; } enum "st3" { value 67; description "ITU-T Option 2, Generation 2: Stratum 3"; } enum "smc" { value 70; description "ITU-T Option 2, Generation 2: SONET clock self timed"; } enum "eec2" { value 69; description "ITU-T Option 2, Generation 2: Ethernet equipment clock"; } enum "e-eec" { value 68; description "ITU-T Option 2, Generation 2: Ethernet ethernet equipment clock"; } enum "st4" { value 71; description "ITU-T Option 2, Generation 2: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../one or ../../../../../../highest/itu-t/option/one or ../../../../../../highest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/one or ../../../../../../lowest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 2"; } } // container generation } // container two } // container option } // container itu-t } // container exact } // container transmit container receive { description "Adjust the received quality level"; container lowest { description "Specify the lowest acceptable QL value"; container itu-t { description "ITU-T QL options"; container option { description "ITU-T QL options"; leaf one { type enumeration { enum "prc" { value 22; description "ITU-T Option 1: Primary reference clock"; } enum "prtc" { value 21; description "ITU-T Option 1: Primary reference timing clock"; } enum "e-prtc" { value 20; description "ITU-T Option 1: Enhanced primary reference timing clock"; } enum "ssu-a" { value 23; description "ITU-T Option 1: Type I or V subordinate clock"; } enum "ssu-b" { value 24; description "ITU-T Option 1: Type IV subordinate clock"; } enum "sec" { value 27; description "ITU-T Option 1: SONET equipment clock"; } enum "e-eec" { value 25; description "ITU-T Option 1: Enhanced ethernet equipment clock"; } enum "eec1" { value 26; description "ITU-T Option 1: Ethernet equipment clock"; } enum "dnu" { value 1; description "This signal should not be used for synchronization"; } } must "not(../two/generation/one or ../two/generation/two or ../../../../highest/itu-t/option/two/generation/one or ../../../../highest/itu-t/option/two/generation/two or ../../../../exact/itu-t/option/one or ../../../../exact/itu-t/option/two/generation/one or ../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 1"; } container two { description "ITU-T QL option 2"; container generation { description "ITU-T QL option 2 generation"; leaf one { type enumeration { enum "prs" { value 42; description "ITU-T Option 2, Generation 1: Primary reference source"; } enum "prtc" { value 41; description "ITU-T Option 2, Generation 1: Primary reference timing clock"; } enum "e-prtc" { value 40; description "ITU-T Option 2, Generation 1: Enhanced primary reference timing clock"; } enum "stu" { value 43; description "ITU-T Option 2, Generation 1: Synchronized - traceability unknown"; } enum "st2" { value 44; description "ITU-T Option 2, Generation 1: Stratum 2"; } enum "st3" { value 45; description "ITU-T Option 2, Generation 1: Stratum 3"; } enum "smc" { value 48; description "ITU-T Option 2, Generation 1: SONET clock self timed"; } enum "eec2" { value 47; description "ITU-T Option 2, Generation 1: Ethernet equipment clock"; } enum "e-eec" { value 46; description "ITU-T Option 2, Generation 1: Ethernet ethernet equipment clock"; } enum "st4" { value 49; description "ITU-T Option 2, Generation 1: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../two or ../../../../../../highest/itu-t/option/one or ../../../../../../highest/itu-t/option/two/generation/two or ../../../../../../exact/itu-t/option/one or ../../../../../../exact/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 1"; } leaf two { type enumeration { enum "prs" { value 62; description "ITU-T Option 2, Generation 2: Primary reference source"; } enum "prtc" { value 61; description "ITU-T Option 2, Generation 2: Primary reference timing clock"; } enum "e-prtc" { value 60; description "ITU-T Option 2, Generation 2: Enhanced primary reference timing clock"; } enum "stu" { value 63; description "ITU-T Option 2, Generation 2: Synchronized - traceability unknown"; } enum "st2" { value 64; description "ITU-T Option 2, Generation 2: Stratum 2"; } enum "tnc" { value 65; description "ITU-T Option 2, Generation 2: Transit node clock"; } enum "st3e" { value 66; description "ITU-T Option 2, Generation 2: Stratum 3E"; } enum "st3" { value 67; description "ITU-T Option 2, Generation 2: Stratum 3"; } enum "smc" { value 70; description "ITU-T Option 2, Generation 2: SONET clock self timed"; } enum "eec2" { value 69; description "ITU-T Option 2, Generation 2: Ethernet equipment clock"; } enum "e-eec" { value 68; description "ITU-T Option 2, Generation 2: Ethernet ethernet equipment clock"; } enum "st4" { value 71; description "ITU-T Option 2, Generation 2: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../one or ../../../../../../highest/itu-t/option/one or ../../../../../../highest/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/one or ../../../../../../exact/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 2"; } } // container generation } // container two } // container option } // container itu-t } // container lowest container highest { description "Specify the highest acceptable QL value"; container itu-t { description "ITU-T QL options"; container option { description "ITU-T QL options"; leaf one { type enumeration { enum "prc" { value 22; description "ITU-T Option 1: Primary reference clock"; } enum "prtc" { value 21; description "ITU-T Option 1: Primary reference timing clock"; } enum "e-prtc" { value 20; description "ITU-T Option 1: Enhanced primary reference timing clock"; } enum "ssu-a" { value 23; description "ITU-T Option 1: Type I or V subordinate clock"; } enum "ssu-b" { value 24; description "ITU-T Option 1: Type IV subordinate clock"; } enum "sec" { value 27; description "ITU-T Option 1: SONET equipment clock"; } enum "e-eec" { value 25; description "ITU-T Option 1: Enhanced ethernet equipment clock"; } enum "eec1" { value 26; description "ITU-T Option 1: Ethernet equipment clock"; } enum "dnu" { value 1; description "This signal should not be used for synchronization"; } } must "not(../two/generation/one or ../two/generation/two or ../../../../lowest/itu-t/option/one or ../../../../lowest/itu-t/option/two/generation/one or ../../../../lowest/itu-t/option/two/generation/two or ../../../../exact/itu-t/option/one or ../../../../exact/itu-t/option/two/generation/one or ../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 1"; } container two { description "ITU-T QL option 2"; container generation { description "ITU-T QL option 2 generation"; leaf one { type enumeration { enum "prs" { value 42; description "ITU-T Option 2, Generation 1: Primary reference source"; } enum "prtc" { value 41; description "ITU-T Option 2, Generation 1: Primary reference timing clock"; } enum "e-prtc" { value 40; description "ITU-T Option 2, Generation 1: Enhanced primary reference timing clock"; } enum "stu" { value 43; description "ITU-T Option 2, Generation 1: Synchronized - traceability unknown"; } enum "st2" { value 44; description "ITU-T Option 2, Generation 1: Stratum 2"; } enum "st3" { value 45; description "ITU-T Option 2, Generation 1: Stratum 3"; } enum "smc" { value 48; description "ITU-T Option 2, Generation 1: SONET clock self timed"; } enum "eec2" { value 47; description "ITU-T Option 2, Generation 1: Ethernet equipment clock"; } enum "e-eec" { value 46; description "ITU-T Option 2, Generation 1: Ethernet ethernet equipment clock"; } enum "st4" { value 49; description "ITU-T Option 2, Generation 1: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../two or ../../../../../../lowest/itu-t/option/one or ../../../../../../lowest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/two/generation/two or ../../../../../../exact/itu-t/option/one or ../../../../../../exact/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 1"; } leaf two { type enumeration { enum "prs" { value 62; description "ITU-T Option 2, Generation 2: Primary reference source"; } enum "prtc" { value 61; description "ITU-T Option 2, Generation 2: Primary reference timing clock"; } enum "e-prtc" { value 60; description "ITU-T Option 2, Generation 2: Enhanced primary reference timing clock"; } enum "stu" { value 63; description "ITU-T Option 2, Generation 2: Synchronized - traceability unknown"; } enum "st2" { value 64; description "ITU-T Option 2, Generation 2: Stratum 2"; } enum "tnc" { value 65; description "ITU-T Option 2, Generation 2: Transit node clock"; } enum "st3e" { value 66; description "ITU-T Option 2, Generation 2: Stratum 3E"; } enum "st3" { value 67; description "ITU-T Option 2, Generation 2: Stratum 3"; } enum "smc" { value 70; description "ITU-T Option 2, Generation 2: SONET clock self timed"; } enum "eec2" { value 69; description "ITU-T Option 2, Generation 2: Ethernet equipment clock"; } enum "e-eec" { value 68; description "ITU-T Option 2, Generation 2: Ethernet ethernet equipment clock"; } enum "st4" { value 71; description "ITU-T Option 2, Generation 2: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../one or ../../../../../../lowest/itu-t/option/one or ../../../../../../lowest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/two/generation/two or ../../../../../../exact/itu-t/option/one or ../../../../../../exact/itu-t/option/two/generation/one or ../../../../../../exact/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 2"; } } // container generation } // container two } // container option } // container itu-t } // container highest container exact { description "Specify the exact QL value to use"; container itu-t { description "ITU-T QL options"; container option { description "ITU-T QL options"; leaf one { type enumeration { enum "prc" { value 22; description "ITU-T Option 1: Primary reference clock"; } enum "prtc" { value 21; description "ITU-T Option 1: Primary reference timing clock"; } enum "e-prtc" { value 20; description "ITU-T Option 1: Enhanced primary reference timing clock"; } enum "ssu-a" { value 23; description "ITU-T Option 1: Type I or V subordinate clock"; } enum "ssu-b" { value 24; description "ITU-T Option 1: Type IV subordinate clock"; } enum "sec" { value 27; description "ITU-T Option 1: SONET equipment clock"; } enum "e-eec" { value 25; description "ITU-T Option 1: Enhanced ethernet equipment clock"; } enum "eec1" { value 26; description "ITU-T Option 1: Ethernet equipment clock"; } enum "dnu" { value 1; description "This signal should not be used for synchronization"; } } must "not(../two/generation/one or ../two/generation/two or ../../../../highest/itu-t/option/two/generation/one or ../../../../highest/itu-t/option/two/generation/two or ../../../../lowest/itu-t/option/one or ../../../../lowest/itu-t/option/two/generation/one or ../../../../lowest/itu-t/option/two/generation/two)"; description "ITU-T QL option 1"; } container two { description "ITU-T QL option 2"; container generation { description "ITU-T QL option 2 generation"; leaf one { type enumeration { enum "prs" { value 42; description "ITU-T Option 2, Generation 1: Primary reference source"; } enum "prtc" { value 41; description "ITU-T Option 2, Generation 1: Primary reference timing clock"; } enum "e-prtc" { value 40; description "ITU-T Option 2, Generation 1: Enhanced primary reference timing clock"; } enum "stu" { value 43; description "ITU-T Option 2, Generation 1: Synchronized - traceability unknown"; } enum "st2" { value 44; description "ITU-T Option 2, Generation 1: Stratum 2"; } enum "st3" { value 45; description "ITU-T Option 2, Generation 1: Stratum 3"; } enum "smc" { value 48; description "ITU-T Option 2, Generation 1: SONET clock self timed"; } enum "eec2" { value 47; description "ITU-T Option 2, Generation 1: Ethernet equipment clock"; } enum "e-eec" { value 46; description "ITU-T Option 2, Generation 1: Ethernet ethernet equipment clock"; } enum "st4" { value 49; description "ITU-T Option 2, Generation 1: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../two or ../../../../../../highest/itu-t/option/one or ../../../../../../highest/itu-t/option/two/generation/two or ../../../../../../lowest/itu-t/option/one or ../../../../../../lowest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 1"; } leaf two { type enumeration { enum "prs" { value 62; description "ITU-T Option 2, Generation 2: Primary reference source"; } enum "prtc" { value 61; description "ITU-T Option 2, Generation 2: Primary reference timing clock"; } enum "e-prtc" { value 60; description "ITU-T Option 2, Generation 2: Enhanced primary reference timing clock"; } enum "stu" { value 63; description "ITU-T Option 2, Generation 2: Synchronized - traceability unknown"; } enum "st2" { value 64; description "ITU-T Option 2, Generation 2: Stratum 2"; } enum "tnc" { value 65; description "ITU-T Option 2, Generation 2: Transit node clock"; } enum "st3e" { value 66; description "ITU-T Option 2, Generation 2: Stratum 3E"; } enum "st3" { value 67; description "ITU-T Option 2, Generation 2: Stratum 3"; } enum "smc" { value 70; description "ITU-T Option 2, Generation 2: SONET clock self timed"; } enum "eec2" { value 69; description "ITU-T Option 2, Generation 2: Ethernet equipment clock"; } enum "e-eec" { value 68; description "ITU-T Option 2, Generation 2: Ethernet ethernet equipment clock"; } enum "st4" { value 71; description "ITU-T Option 2, Generation 2: Stratum 4 freerun"; } enum "dus" { value 1; description "This signal should not be used for synchronization"; } } must "not(../../../one or ../one or ../../../../../../highest/itu-t/option/one or ../../../../../../highest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/one or ../../../../../../lowest/itu-t/option/two/generation/one or ../../../../../../lowest/itu-t/option/two/generation/two)"; description "ITU-T QL option 2, generation 2"; } } // container generation } // container two } // container option } // container itu-t } // container exact } // container receive } // container quality leaf wait-to-restore { type uint32 { range "0..12"; } description "Set the wait-to-restore time"; } container selection { description "Selection configuration commands"; container input { presence "Indicates a input node is configured."; description "Enable this source for selection"; } // container input } // container selection } // container synchronization } // container frequency } // 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.